980 votes

Obtenir la date et l'heure actuelles en PHP

Quelle fonction PHP peut retourner la date et l'heure actuelles ?

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.

694voto

NJ. Points 1734

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 :)

589voto

bogonko Points 2074
// 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 .

239voto

Mahdi Points 3138

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();

110voto

ShapCyber Points 399

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)

74voto

Rob Hruska Points 39151

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');

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X