Question Comment obtenir la date et l'heure actuelles en PHP?


Quelle fonction PHP peut renvoyer la date / heure actuelle?


678
2018-01-22 20:09


origine


Réponses:


L'heure passerait à l'heure de votre serveur. Une solution de contournement facile pour cela consiste à définir manuellement le fuseau horaire en utilisant date_default_timezone_set avant le date() ou time() les fonctions 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 - NOUS:

date_default_timezone_set('America/Los_Angeles');

Vous pouvez également voir à 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;

Donc, la réponse courte à votre question serait:

// Change the line below to your timezone!
date_default_timezone_set('Australia/Melbourne');
$date = date('m/d/Y h:i:s a', time());

Alors tout le temps serait au fuseau horaire que vous venez de définir :)


532
2018-01-23 00:19



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


382
2018-03-06 14:42



Depuis PHP 5.2.0 vous pouvez le faire en utilisant OOP et DateTime() ainsi (bien sûr si vous préférez OOP):

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

160
2018-05-29 12:44



Référence: Voici un lien

Cela peut être plus fiable que simplement ajouter ou soustraire le nombre de secondes dans un jour 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)

76
2017-08-29 18:49



Vous pouvez utiliser le $_SERVER['REQUEST_TIME'] variable (disponible depuis PHP 5.1.0) ou le time() fonction pour obtenir l'horodatage Unix actuel.


56
2018-01-22 20:11



PHP temps() renvoie un horodatage unix actuel. Avec cela, vous pouvez utiliser le rendez-vous amoureux() fonction 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. L'extrait suivant est équivalent à celui ci-dessus:

$date = date('Format String');

56
2018-01-22 20:13



PHP rendez-vous amoureux fonction peut faire ce travail

rendez-vous amoureux()

La description :

string date ( string $format [, int $timestamp = time() ] )

Renvoie une chaîne formatée conformément à la chaîne de format donnée en utilisant l'horodateur d'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)

43
2018-04-17 11:43



Vous pouvez utiliser à la fois $ _SERVER ['REQUEST_TIME'] variable ou la fonction ** time () **. Les deux retournent un horodatage Unix.

La plupart du temps, ces deux solutions donnent exactement le même Timestamp Unix. La différence entre ceux-ci est que $ _SERVER ['REQUEST_TIME'] renvoie l'horodatage de la requête serveur la plus récente et time () renvoie l'heure actuelle. Cela peut créer des différences mineures dans la précision en fonction de 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 cette information une fois que vous obtenez l'horodatage Unix. Un horodatage Unix non formaté ressemble à ceci ...

Horodatage Unix: 1232659628

Donc, pour obtenir quelque chose qui fonctionne, vous pouvez utiliser le rendez-vous amoureux() fonction pour le formater.

Une bonne référence pour les moyens d'utiliser la fonction date () se trouve dans les pages du manuel PHP, ici ...

http://us.php.net/date

Par exemple, le code suivant renvoie une date qui ressemble à ceci:

22/01/2009 16:35:00

echo date("m/d/Y h:i:s a", time());

38
2018-01-22 21:36