Quelle fonction PHP peut retourner la date et l'heure actuelles ?
Réponses
Trop de publicités?L'heure correspondrait à l'heure de votre serveur. Une solution de contournement facile consiste à définir manuellement le fuseau horaire en utilisant la commande date_default_timezone_set
avant le date()
ou time()
sont appelées.
Je suis à Melbourne, 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 via quel fuseau horaire le serveur se trouve actuellement :
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 est donc la suivante :
// Change the line below to your timezone!
date_default_timezone_set('Australia/Melbourne');
$date = date('m/d/Y h:i:s a', time());
Toutes les heures seront alors conformes 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 le 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 spécifier le timezone
:
$now = new DateTime(null, new DateTimeZone('America/New_York'));
$now->setTimezone(new DateTimeZone('Europe/London')); // Another way
echo $now->getTimezone();
Référence : Voici un lien
Cela peut être plus fiable que de simplement ajouter ou soustraire le nombre de secondes d'un jour ou d'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)
PHP temps() renvoie un horodatage Unix courant. Avec cela, vous pouvez utiliser la fonction date() pour le formater selon vos besoins.
$date = date('Format String', time());
Comme Paolo l'a mentionné dans les commentaires, le deuxième argument est redondant. Le snippet suivant est équivalent à celui ci-dessus :
$date = date('Format String');
- Réponses précédentes
- Plus de réponses
3 votes
TLDR ;
$date = date('m/d/Y h:i:s a', time());
1 votes
Il semble que nous ne puissions pas obtenir l'heure du système qui visite le site, sauf en utilisant javascript. En PHP, nous pouvons définir un fuseau horaire fixe pour obtenir l'heure actuelle de ce fuseau.