Risposte:
Il tempo passerebbe dal tempo del tuo server. Una soluzione semplice per questo consiste nell'impostare manualmente il fuso orario utilizzando date_default_timezone_set
prima di chiamare le funzioni date()
o time()
.
Sono a Melbourne, in Australia , quindi ho qualcosa del genere:
date_default_timezone_set('Australia/Melbourne');
O un altro esempio è LA - US :
date_default_timezone_set('America/Los_Angeles');
Puoi anche vedere in quale fuso orario si trova attualmente il server tramite:
date_default_timezone_get();
Quindi qualcosa del tipo:
$timezone = date_default_timezone_get();
echo "The current server timezone is: " . $timezone;
Quindi la risposta breve alla tua domanda sarebbe:
// Change the line below to your timezone!
date_default_timezone_set('Australia/Melbourne');
$date = date('m/d/Y h:i:s a', time());
Quindi tutte le volte sarebbero nel fuso orario che hai appena impostato :)
// Simply:
$date = date('Y-m-d H:i:s');
// Or:
$date = date('Y/m/d H:i:s');
// This would return the date in the following formats respectively:
$date = '2012-03-06 17:33:07';
// Or
$date = '2012/03/06 17:33:07';
/**
* This time is based on the default server time zone.
* If you want the date in a different time zone,
* say if you come from Nairobi, Kenya like I do, you can set
* the time zone to Nairobi as shown below.
*/
date_default_timezone_set('Africa/Nairobi');
// Then call the date functions
$date = date('Y-m-d H:i:s');
// Or
$date = date('Y/m/d H:i:s');
// date_default_timezone_set() function is however
// supported by PHP version 5.1.0 or above.
Per un riferimento di fuso orario, vedere Elenco dei fusi orari supportati .
Da PHP 5.2.0
puoi usare la DateTime()
classe:
use \Datetime;
$now = new DateTime();
echo $now->format('Y-m-d H:i:s'); // MySQL datetime format
echo $now->getTimestamp(); // Unix Timestamp -- Since PHP 5.3
E per specificare timezone
:
$now = new DateTime(null, new DateTimeZone('America/New_York'));
$now->setTimezone(new DateTimeZone('Europe/London')); // Another way
echo $now->getTimezone();
Datatime
spazio dei nomi; Non ricordo se fosse il caso nel 2013 e non scrivo alcun codice PHP da anni. Indipendentemente da ciò, il tuo suggerimento sembra essere corretto, quindi grazie ancora.
Riferimento: ecco un link
Ciò può essere più affidabile della semplice aggiunta o sottrazione del numero di secondi in un giorno o un mese a un timestamp a causa dell'ora legale.
Il codice PHP
// Assuming today is March 10th, 2001, 5:16:18 pm, and that we are in the
// Mountain Standard Time (MST) Time Zone
$today = date("F j, Y, g:i a"); // March 10, 2001, 5:16 pm
$today = date("m.d.y"); // 03.10.01
$today = date("j, n, Y"); // 10, 3, 2001
$today = date("Ymd"); // 20010310
$today = date('h-i-s, j-m-y, it is w Day'); // 05-16-18, 10-03-01, 1631 1618 6 Satpm01
$today = date('\i\t \i\s \t\h\e jS \d\a\y.'); // it is the 10th day.
$today = date("D M j G:i:s T Y"); // Sat Mar 10 17:16:18 MST 2001
$today = date('H:m:s \m \i\s\ \m\o\n\t\h'); // 17:03:18 m is month
$today = date("H:i:s"); // 17:16:18
$today = date("Y-m-d H:i:s"); // 2001-03-10 17:16:18 (the MySQL DATETIME format)
PHP's time () restituisce un timestamp Unix corrente. Con questo, è possibile utilizzare la funzione date () per formattarla in base alle proprie esigenze.
$date = date('Format String', time());
Come Paolo ha menzionato nei commenti, il secondo argomento è ridondante. Il frammento seguente è equivalente a quello sopra:
$date = date('Format String');
Puoi usare la $_SERVER['REQUEST_TIME']
variabile (disponibile da PHP 5.1.0) o la time()
funzione per ottenere l'attuale timestamp Unix.
time()
funzione è indipendente dal fuso orario. (Quindi chiamare date_default_timezone_set("your-particular-timezone");
prima non avrà alcun effetto.)
È possibile utilizzare sia la $_SERVER['REQUEST_TIME']
variabile che la time()
funzione. Entrambi restituiscono un timestamp Unix.
Il più delle volte queste due soluzioni produrranno esattamente lo stesso timestamp Unix . La differenza tra questi è che $_SERVER['REQUEST_TIME']
restituisce il timestamp della richiesta del server più recente e time()
restituisce l'ora corrente. Ciò può creare lievi differenze di precisione a seconda dell'applicazione, ma nella maggior parte dei casi entrambe queste soluzioni dovrebbero essere sufficienti.
In base al codice di esempio sopra riportato, vorrai formattare queste informazioni una volta ottenuto il timestamp Unix . Il tempo Unix non formattato è simile a:1232659628
Quindi, per ottenere qualcosa che funzioni, puoi usare la date()
funzione per formattarlo.
Un buon riferimento per le modalità di utilizzo della date()
funzione si trova nel Manuale PHP .
Ad esempio, il codice seguente restituisce una data simile alla seguente 01/22/2009 04:35:00 pm
:
echo date("m/d/Y h:i:s a", time());
$_SERVER['REQUEST_TIME']
?
La funzione di data di PHP può fare questo lavoro.
Descrizione:
string date(string $format [, int $timestamp = time()])
Restituisce una stringa formattata in base alla stringa di formato specificata utilizzando il timestamp intero specificato o l'ora corrente se non viene fornito alcun timestamp.
Esempi:
$today = date("F j, Y, g:i a"); // March 10, 2001, 5:16 pm
$today = date("m.d.y"); // 03.10.01
$today = date("j, n, Y"); // 10, 3, 2001
$today = date("Ymd"); // 20010310
$today = date('h-i-s, j-m-y, it is w Day'); // 05-16-18, 10-03-01, 1631 1618 6 Satpm01
$today = date('\i\t \i\s \t\h\e jS \d\a\y.'); // it is the 10th day.
$today = date("D M j G:i:s T Y"); // Sat Mar 10 17:16:18 MST 2001
$today = date('H:m:s \m \i\s\ \m\o\n\t\h'); // 17:03:18 m is month
$today = date("H:i:s"); // 17:16:18
$today = date("Y-m-d H:i:s"); // 2001-03-10 17:16:18 (the MySQL DATETIME format)
$date = new DateTime('now', new DateTimeZone('Asia/Kolkata'));
echo $date->format('d-m-Y H:i:s');
Aggiornare
//Also get am/pm in datetime:
echo $date->format('d-m-Y H:i:s a'); // output 30-12-2013 10:16:15 am
Per il formato della data, la funzione PHP date () è utile.
è molto semplice
echo $ date = date ('Ymd H: i: s');
Perché il nuovo programmatore PHP potrebbe confondere il motivo per cui ci sono molti metodi per ottenere la data e l'ora correnti e quale usare nel loro progetto.
1. date
metodo (PHP 4, PHP 5, PHP 7)
Questo è il modo più comune e più semplice per ottenere la data e l'ora in php.
// set the default timezone to use. Available since PHP 5.1
date_default_timezone_set('UTC');
// Prints something like: Monday
echo date("l");
// Prints something like: Monday 8th of August 2005 03:12:46 PM
echo date('l jS \of F Y h:i:s A');
// Prints: July 1, 2000 is on a Saturday
echo "July 1, 2000 is on a " . date("l", mktime(0, 0, 0, 7, 1, 2000));
/* use the constants in the format parameter */
// prints something like: Wed, 25 Sep 2013 15:28:57 -0700
echo date(DATE_RFC2822);
// prints something like: 2000-07-01T00:00:00+00:00
echo date(DATE_ATOM, mktime(0, 0, 0, 7, 1, 2000));
Puoi saperne di più qui
2. DateTime
classe (PHP 5> = 5.2.0, PHP 7)
quando vuoi usare PHP con OOP, questo è il modo migliore per ottenere data e ora.
<?php
// Specified date/time in your computer's time zone.
$date = new DateTime('2000-01-01');
echo $date->format('Y-m-d H:i:sP') . "\n";
// Specified date/time in the specified time zone.
$date = new DateTime('2000-01-01', new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') . "\n";
// Current date/time in your computer's time zone.
$date = new DateTime();
echo $date->format('Y-m-d H:i:sP') . "\n";
// Current date/time in the specified time zone.
$date = new DateTime(null, new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') . "\n";
// Using a UNIX timestamp. Notice the result is in the UTC time zone.
$date = new DateTime('@946684800');
echo $date->format('Y-m-d H:i:sP') . "\n";
// Non-existent values roll over.
$date = new DateTime('2000-02-30');
echo $date->format('Y-m-d H:i:sP') . "\n";
?>
Puoi saperne di più qui
3. Pacchetto data e ora carbonio
se stai usando Composer , Laravel , Symfony o qualsiasi tipo di framework, questo è il modo migliore per ottenere la data e l'ora. Anche questo pacchetto estende la classe DateTime in php in modo da usare tutto il metodo nella classe Datetime. Questo framework integrato come laravel, quindi non è necessario installarlo separatamente.
printf("Right now is %s", Carbon::now()->toDateTimeString());
printf("Right now in Vancouver is %s", Carbon::now('America/Vancouver')); // automatically converted to string
$tomorrow = Carbon::now()->addDay();
$lastWeek = Carbon::now()->subWeek();
// Carbon embed 823 languages:
echo $tomorrow->locale('fr')->isoFormat('dddd, MMMM Do YYYY, h:mm');
echo $tomorrow->locale('ar')->isoFormat('dddd, MMMM Do YYYY, h:mm');
$officialDate = Carbon::now()->toRfc2822String();
$howOldAmI = Carbon::createFromDate(1975, 5, 21)->age;
$noonTodayLondonTime = Carbon::createFromTime(12, 0, 0, 'Europe/London');
$internetWillBlowUpOn = Carbon::create(2038, 01, 19, 3, 14, 7, 'GMT');
if (Carbon::now()->isWeekend()) {
echo 'Party!';
}
echo Carbon::now()->subMinutes(2)->diffForHumans(); // '2 minutes ago'
Puoi saperne di più qui
Spero che questo aiuti e se conosci altri modi per ottenere la data e l'ora, sentiti libero di modificare la risposta.
Uso:
$date = date('m/d/Y h:i:s a', time());
Funziona.
echo date("d-m-Y H:i:sa");
Questo codice otterrà la data e l'ora del server su cui il codice viene eseguito.
Puoi usare questo formato anche:
$date = date("d-m-Y");
O
$date = date("Y-m-d H:i:s");
Secondo l'articolo Come ottenere il datetime corrente (NOW) con PHP , ci sono due modi comuni per ottenere la data corrente. Per ottenere il datetime corrente (ora) con PHP, puoi usare la date
classe con qualsiasi versione di PHP, o meglio la datetime
classe con PHP> = 5.2.
Varie espressioni in formato data sono disponibili qui.
Questa espressione tornerà ORA in formato Y-m-d H:i:s
.
<?php
echo date('Y-m-d H:i:s');
?>
Questa espressione tornerà ORA in formato Y-m-d H:i:s
.
<?php
$dt = new DateTime();
echo $dt->format('Y-m-d H:i:s');
?>
<?php
// Assuming today is March 10th, 2001, 5:16:18 pm, and that we are in the
// Mountain Standard Time (MST) Time Zone
$today = date("F j, Y, g:i a"); // March 10, 2001, 5:16 pm
$today = date("m.d.y"); // 03.10.01
$today = date("j, n, Y"); // 10, 3, 2001
$today = date("Ymd"); // 20010310
$today = date('h-i-s, j-m-y, it is w Day'); // 05-16-18, 10-03-01, 1631 1618 6 Satpm01
$today = date('\i\t \i\s \t\h\e jS \d\a\y.'); // it is the 10th day.
$today = date("D M j G:i:s T Y"); // Sat Mar 10 17:16:18 MST 2001
$today = date('H:m:s \m \i\s\ \m\o\n\t\h'); // 17:03:18 m is month
$today = date("H:i:s"); // 17:16:18
$today = date("Y-m-d H:i:s"); // 2001-03-10 17:16:18 (the MySQL DATETIME format)
?>
date(format, timestamp)
La date
funzione restituisce una stringa formattata in base alla stringa di formato specificata utilizzando la data / ora intera indicata o l'ora corrente se non viene fornita alcuna data / ora. In altre parole,timestamp
è facoltativo e il valore predefinito è time ().
E i parametri sono -
formato: obbligatorio. Specifica il formato del timestamp
timestamp: (facoltativo) specifica un timestamp. L'impostazione predefinita è la data e l'ora correnti
Il parametro di formato richiesto per la date()
funzione specifica come formattaredate (or time)
.
Ecco alcuni caratteri che sono comunemente usati per le date:
Altri personaggi, come "/", ".", or "-"
possono anche essere inseriti tra i caratteri per aggiungere ulteriore formattazione.
L'esempio seguente formatta la data odierna in tre modi diversi:
<?php
echo "Today is " . date("Y/m/d") . "<br>";
echo "Today is " . date("Y.m.d") . "<br>";
echo "Today is " . date("Y-m-d") . "<br>";
echo "Today is " . date("l");
?>
Se desideri un calendario diverso, utilizza:
$tomorrow = mktime(0, 0, 0, date("m") , date("d")+1, date("Y"));
$lastmonth = mktime(0, 0, 0, date("m")-1, date("d"), date("Y"));
$nextyear = mktime(0, 0, 0, date("m"), date("d"), date("Y")+1);
date_default_timezone_set("Asia/Calcutta");
echo date("Y/m/d H:i:s");
Anche il formato della data dipende:
echo date("d/m/Y H:i:sa"); // 13/04/2017 19:38:15pm
Puoi usare questo codice:
<?php
$currentDateTime = date('Y-m-d H:i:s');
echo $currentDateTime;
?>
Un altro modo semplice è quello di prendere il timestamp della data e ora correnti. Usa la funzione mktime () :
$now = mktime(); // Return timestamp of the current time
Quindi puoi convertirlo in un altro formato data:
//// Prints something like: Thursday 26th of January 2017 01:12:36 PM
echo date('l jS \of F Y h:i:s A',$now);
Altri formati di data sono qui: http://php.net/manual/en/function.date.php
Molto semplice
date_default_timezone_set('Asia/Kolkata');
$date = date('m/d/Y H:i:s', time());
// Set the default timezone to use. Available since PHP 5.1
date_default_timezone_set('UTC');
// Prints something like: Monday
echo date("l");
// Prints something like: Monday 8th of August 2016 03:12:46 PM
echo date('l jS \of F Y h:i:s A');
// Prints: July 1, 2016 is on a Saturday
echo "July 1, 2016 is on a " . date("l", mktime(0, 0, 0, 7, 1, 2016));
/* Use the constants in the format parameter */
// Prints something like: Wed, 25 Sep 2013 15:28:57 -0700
echo date(DATE_RFC2822);
// Prints something like: 2016-07-01T00:00:00+00:00
echo date(DATE_ATOM, mktime(0, 0, 0, 7, 1, 2000));
Normalmente, questa funzione per la data è utile per tutti: data ("Y / m / d");
Ma il tempo è qualcosa di diverso, perché la funzione ora dipende dalla versione di PHP o dalla data di sistema.
Quindi probabilmente usalo in questo modo per ottenere il nostro fuso orario:
$date = new DateTime('now', new DateTimeZone('Asia/Kolkata'));
echo $date->format('H:m:s');
Questa funzione mostra il tempo di 24 ore.
Ecco alcuni personaggi che sono comunemente usati per i tempi:
a - Ante meridiem e Post meridiem minuscoli (am o pm)
Ottieni il tuo fuso orario
<?php
date_default_timezone_set("America/New_York");
echo "The time is " . date("h:i:sa");
?>
Dai un'occhiata (opzionale)
<?php
$d = mktime(11, 14, 54, 8, 12, 2014);
echo "Created date is " . date("Y-m-d h:i:sa", $d);
?>
Per data
<?php
echo "Today is " . date("Y/m/d") . ;
echo "Today is " . date("Y.m.d") . ;
echo "Today is " . date("Y-m-d") . ;
echo "Today is " . date("l");
?>
Ecco alcuni caratteri che sono comunemente usati per le date:
.
in date("Y/m/d") . ;
?
$date = date('m/d/Y h:i:s a', time());