Réponses:
Le temps passerait par l'heure de votre serveur. Une solution de contournement simple consiste à définir manuellement le fuseau horaire en utilisant date_default_timezone_set
avant d' appeler les fonctions date()
ou time()
.
Je suis à Melbourne, en Australie, donc j'ai quelque chose comme ça:
date_default_timezone_set('Australia/Melbourne');
Ou un autre exemple est LA - US :
date_default_timezone_set('America/Los_Angeles');
Vous pouvez également voir dans quel fuseau horaire le serveur se trouve actuellement via:
date_default_timezone_get();
Donc quelque chose comme:
$timezone = date_default_timezone_get();
echo "The current server timezone is: " . $timezone;
La réponse courte à votre question serait donc:
// Change the line below to your timezone!
date_default_timezone_set('Australia/Melbourne');
$date = date('m/d/Y h:i:s a', time());
Ensuite, tout le temps serait au fuseau horaire que vous venez de définir :)
// 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.
Pour une référence de fuseau horaire, voir Liste des fuseaux horaires pris en charge .
Depuis PHP, 5.2.0
vous pouvez utiliser 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
Et pour préciser timezone
:
$now = new DateTime(null, new DateTimeZone('America/New_York'));
$now->setTimezone(new DateTimeZone('Europe/London')); // Another way
echo $now->getTimezone();
Datatime
espace de noms; Je ne me souviens pas si c'était le cas en 2013 et je n'ai pas écrit de code PHP depuis des années. Quoi qu'il en soit, votre suggestion semble être correcte, alors merci encore.
Référence: voici un lien
Cela peut être plus fiable que d'ajouter ou de soustraire simplement le nombre de secondes dans une journée ou un mois à un horodatage en raison de l'heure d'été.
Le code 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)
Le temps de PHP () renvoie un horodatage Unix actuel. Avec cela, vous pouvez utiliser la fonction date () pour le formater à vos besoins.
$date = date('Format String', time());
Comme Paolo l'a mentionné dans les commentaires, le deuxième argument est redondant. L'extrait de code suivant est équivalent à celui ci-dessus:
$date = date('Format String');
Vous pouvez soit utiliser la $_SERVER['REQUEST_TIME']
variable (disponible depuis PHP 5.1.0) ou la time()
fonction pour obtenir l'horodatage Unix actuel.
time()
fonction est indépendant du fuseau horaire. (Donc, appeler date_default_timezone_set("your-particular-timezone");
avant n'aura aucun effet.)
Vous pouvez utiliser à la fois la $_SERVER['REQUEST_TIME']
variable ou la time()
fonction. Les deux renvoient un horodatage Unix.
La plupart du temps, ces deux solutions produiront exactement le même horodatage Unix . La différence entre ceux-ci est que $_SERVER['REQUEST_TIME']
renvoie l'horodatage de la dernière demande de serveur et time()
renvoie l'heure actuelle. Cela peut créer des différences de précision mineures selon votre application, mais dans la plupart des cas, ces deux solutions devraient suffire.
Sur la base de votre exemple de code ci-dessus, vous allez vouloir formater ces informations une fois que vous aurez obtenu l' horodatage Unix . Le temps Unix non formaté ressemble à:1232659628
Donc, pour obtenir quelque chose qui fonctionne, vous pouvez utiliser la date()
fonction pour le formater.
Une bonne référence pour les façons d'utiliser la date()
fonction se trouve dans le manuel PHP .
Par exemple, le code suivant renvoie une date qui ressemble à ceci 01/22/2009 04:35:00 pm
::
echo date("m/d/Y h:i:s a", time());
$_SERVER['REQUEST_TIME']
?
La fonction date de PHP peut faire ce travail.
La description:
string date(string $format [, int $timestamp = time()])
Renvoie une chaîne formatée en fonction de la chaîne de formatage donnée en utilisant l'horodatage entier donné ou l'heure actuelle si aucun horodatage n'est donné.
Exemples:
$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');
Mise à jour
//Also get am/pm in datetime:
echo $date->format('d-m-Y H:i:s a'); // output 30-12-2013 10:16:15 am
Pour le format de date, la fonction PHP date () est utile.
c'est très simple
echo $ date = date ('Ymd H: i: s');
Car le nouveau programmeur PHP pourrait confondre pourquoi il y a beaucoup de méthode pour obtenir la date et l'heure actuelles et laquelle utiliser dans leur projet.
1. date
méthode (PHP 4, PHP 5, PHP 7)
C'est la manière la plus courante et la plus simple d'obtenir la date et l'heure en 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));
Vous pouvez en savoir plus à ce sujet ici
2. DateTime
classe (PHP 5> = 5.2.0, PHP 7)
lorsque vous souhaitez utiliser PHP avec OOP, c'est le meilleur moyen d'obtenir la date et l'heure.
<?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";
?>
Vous pouvez en savoir plus à ce sujet ici
3. Paquet de temps de date de carbone
si vous utilisez Composer , Laravel , Symfony ou tout autre framework, c'est la meilleure façon d'obtenir la date et l'heure. De plus, ce package étend la classe DateTime en php afin que vous utilisiez toutes les méthodes de la classe Datetime. Ces cadres intégrés comme laravel vous n'avez donc pas à l'installer séparément.
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'
Vous pouvez en savoir plus à ce sujet ici
J'espère que cela vous aide et si vous connaissez un autre moyen d'obtenir la date et l'heure, n'hésitez pas à modifier la réponse.
Utilisation:
$date = date('m/d/Y h:i:s a', time());
Ça marche.
echo date("d-m-Y H:i:sa");
Ce code obtiendra la date et l'heure du serveur sur lequel le code s'exécute.
Vous pouvez également utiliser ce format:
$date = date("d-m-Y");
Ou
$date = date("Y-m-d H:i:s");
Selon l'article Comment obtenir l'heure actuelle (NOW) avec PHP , il existe deux façons courantes d'obtenir la date actuelle. Pour obtenir le datetime actuel (maintenant) avec PHP, vous pouvez utiliser la date
classe avec n'importe quelle version de PHP, ou mieux la datetime
classe avec PHP> = 5.2.
Diverses expressions de format de date sont disponibles ici.
Cette expression renverra MAINTENANT au format Y-m-d H:i:s
.
<?php
echo date('Y-m-d H:i:s');
?>
Cette expression renverra MAINTENANT au format 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
fonction renvoie une chaîne formatée selon la chaîne de formatage donnée en utilisant l'horodatage entier donné ou l'heure actuelle si aucun horodatage n'est donné. En d'autres termes, il timestamp
est facultatif et correspond par défaut à la valeur de time ().
Et les paramètres sont -
format - Obligatoire. Spécifie le format de l'horodatage
timestamp - (Facultatif) Spécifie un horodatage. La valeur par défaut est la date et l'heure actuelles
Le paramètre de format requis de la date()
fonction spécifie comment formater le date (or time)
.
Voici quelques caractères couramment utilisés pour les dates:
D'autres caractères, comme, "/", ".", or "-"
peuvent également être insérés entre les caractères pour ajouter une mise en forme supplémentaire.
L'exemple ci-dessous met en forme la date d'aujourd'hui de trois manières différentes:
<?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");
?>
Si vous souhaitez une échelle de temps différente, veuillez utiliser:
$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");
Le format de la date dépend aussi:
echo date("d/m/Y H:i:sa"); // 13/04/2017 19:38:15pm
Vous pouvez utiliser ce code:
<?php
$currentDateTime = date('Y-m-d H:i:s');
echo $currentDateTime;
?>
Un autre moyen simple consiste à prendre l'horodatage de la date et de l'heure actuelles. Utilisez la fonction mktime () :
$now = mktime(); // Return timestamp of the current time
Ensuite, vous pouvez convertir cela en un autre format de date:
//// Prints something like: Thursday 26th of January 2017 01:12:36 PM
echo date('l jS \of F Y h:i:s A',$now);
Plus de formats de date sont ici: http://php.net/manual/en/function.date.php
Très simple
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));
Normalement, cette fonction de date est utile pour tout le monde: date ("Y / m / d");
Mais l'heure est quelque chose de différent, car la fonction d'heure dépend de la version PHP ou de la date du système.
Donc, utilisez-le probablement comme ceci pour obtenir notre propre fuseau horaire:
$date = new DateTime('now', new DateTimeZone('Asia/Kolkata'));
echo $date->format('H:m:s');
Cette fonction affiche le temps de 24 heures.
Voici quelques personnages couramment utilisés:
a - Ante meridiem minuscule et Post meridiem (matin ou après-midi)
Obtenez votre fuseau horaire
<?php
date_default_timezone_set("America/New_York");
echo "The time is " . date("h:i:sa");
?>
Vérifiez cela (facultatif)
<?php
$d = mktime(11, 14, 54, 8, 12, 2014);
echo "Created date is " . date("Y-m-d h:i:sa", $d);
?>
Pour date
<?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");
?>
Voici quelques caractères couramment utilisés pour les dates:
.
en date("Y/m/d") . ;
?
$date = date('m/d/Y h:i:s a', time());