strftime

(PHP 4, PHP 5, PHP 7, PHP 8)

strftime Formatta una data/orario locale accordandola/o alle impostazioni locali according to locale settings

Descrizione

strftime(string $format, int $ timestamp = ?): string

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:

  • %a - Nome del giorno della settimana abbreviato in accordo con i parametri locali
  • %A - Nome completo del giorno della settimana in accordo con i parametri locali
  • %b - Nome del mese abbreviato in accordo con i parametri locali
  • %B - Nome completo del mese in accordo con i parametri locali
  • %c - Rappresentazione preferita di data e orario per le attuali impostazioni locali
  • %C - numero del secolo (l'anno diviso 100 e troncato in un intero, intervallo tra 00 e 99)
  • %d - giorno del mese come numero decimale (intervallo tra 01 e 31)
  • %D - come %m/%d/%y
  • %e - giorno del mese come numero decimale, un singolo carattere è preceduto da uno spapzio (intervallo tra ' 1' e '31')
  • %g - come %G, ma senza il secolo.
  • %G - L'anno a 4 cifre corrispondente al numero di setitmana ISO (vedi %V). Questa ha lo stesso formato e valore di %Y, eccetto che se il numero di settimana ISO appartiene al precedente o prossimo anno, è invece utilizzato l'anno attuale.
  • %h - come %b
  • %H - ora come numero decimale usando il sistema a 24 ore (intervallo tra 00 e 23)
  • %I - ora come numero decimale usando il sistema a 12 ore (intervallo tra 01 e 12)
  • %j - giorno dell'anno come numero decimale (intervallo tra 001 e 366)
  • %m - mese come numero decimale (intervallo tra 01 e 12)
  • %M - minuto come numero decimale
  • %n - carattere di nuova linea
  • %p - entrambi `am' o `pm' accordati a un valore di tempo dato, o alle stringhe corrispondenti per le impostazioni locali
  • %r - orario in notazione a.m. e p.m
  • %R - orario nella notazione a 24 ore
  • %S - secondi come numero decimale
  • %t - Carattere di tabella
  • %T - orario attuale, identico a %H:%M:%S
  • %u - giorno della settimana come numero decimale [1,7], dove 1 rappresenta il Lunedì
    Avviso

    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ì.

  • %U - numero della settimana dell'anno in corso come numero decimale, iniziando dalla prima Domenica come primo giorno della prima settimana
  • %V - Il numero di settimana ISO 8601:1988 dell'anno attuale come numero decimale, intervallo tra 01 e 53, dove la settimana 1 è la prima settimana che ha almeno 4 giorni dell'attuale anno, e con il Lunedì come primo giorno della settimana. (Utilizza %G o %g per l'anno componente che corrisponde al numero di settimana per il timestamp specificato.)
  • %W - numero della settimana dell'attuale anno come numero decimale, partendo con il primo Lunedì come primo giorno della prima settimana
  • %w - giorno della settimana come decimale, dove la Domenica è 0
  • %x - visualizzazione della data preferita dalle impostazioni del sistema locale senza orario
  • %X - visualizzazione dell'orario preferito dalle impostazioni del sistema locale senza data
  • %y - anno come numero decimale senza secolo (intervallo tra 00 e 99)
  • %Y - anno come numero decimale incluso il secolo
  • %Z - fuso orario o abbreviazione
  • %% - il carattere `%'

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"));
Questo esempio funziona se hai le ripettive impostazioni di lingua installate nel tuo sistema.

Guarda anche setlocale() e mktime() e le»  specifiche dell' Open Group per strftime().

add a note

User Contributed Notes 2 notes

up
3
divinity76+spam at gmail dot com
2 years ago
there is a strftime compatibility package for php>=8.1 at https://github.com/alphp/strftime
up
0
kanif dot ahire at gmail dot com
24 days ago
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.
To Top