there is a strftime compatibility package for php>=8.1 at https://github.com/alphp/strftime
(PHP 4, PHP 5, PHP 7, PHP 8)
strftime — Formatta una data/orario locale accordandola/o alle impostazioni locali according to locale settings
Restituisce una stringa formattata in accordo con la stringa del formato data
usando il parametro dato timestamp
o l'attuale
orario locale se non è stato dato il timestamp. I nomi di mesi e giorni della settimana e
le altre stringhe dipendenti dalla lingua rispettano le attuali impostazioni locali
con setlocale().
Le seguenti sequenze di caratteri sono utilizzate nella stringa del formato:
Sun Solaris sembra far iniziare con la Domenica a come 1 sebbe la ISO 9889:1999 (l'attuale standard di C) specifica chiaramente che dovrebbe iniziare dal Lunedì.
Nota:
Non tutte le sequenze di caratteri potrebbero essere supportate dalla tua libreria locale di C, in tal caso la funzione strftime() non sarà supportata dal PHP. Questo significa che %T e %D non funzioneranno sotto Windows.
Example #1 Esempio di strftime()
setlocale (LC_TIME, "C");
print (strftime ("%A in Finlandese è "));
setlocale (LC_TIME, "fi_FI");
print (strftime ("%A, in Francese "));
setlocale (LC_TIME, "fr_FR");
print (strftime ("%A e in Italiano "));
setlocale (LC_TIME, "it_IT");
print (strftime ("%A.\n"));
Guarda anche setlocale() e mktime() e le» specifiche dell' Open Group per strftime().
there is a strftime compatibility package for php>=8.1 at https://github.com/alphp/strftime
Year is being displayed wrongly. It is displaying 2025 instead of 2024
E.g. strftime("%G-%B-%d %H:%M:%S", strtotime(date('2024-12-30 10:10:10')));
Output: 2025-December-30 10:10:10
Here G represents 4-digit year corresponding to the ISO week number. Based on this ISO week number year value will be displayed
Here B represents full month name
Here d represents day of the month (01 to 31)
Now because of this %G value we are getting the issue as ISO week number is calculated wrongly.
For example, If 30th December is falling on Monday, Tuesday, or Wednesday it is in W01 of the next year.
If it is on a Thursday, it is in W53 of the year just ending.
If on a Friday it is in W52 of the year just ending in common years and W53 in leap years.
If on a Saturday or Sunday, it is in W52 of the year just ending.
In this way week calculation happens and as 30th falls on Monday it is taking as W01 of the next year and it displays wrong year output.
For previous year no issue for this error because 30 and 31st Dec falls on sat or Sunday .
This same error occurs even if the Jan 1st falls on Friday. Then it will calculate it as W53 and displays the previous year value instead of current year.