web-dev-qa-db-fra.com

Comment obtenir la date et l'heure du serveur

Je veux récupérer la date et l'heure du serveur et selon cela faire quelque chose. Pour cela, j'ai utilisé le code suivant:

$info = getdate();
$date = $info['mday'];
$month = $info['mon'];
$year = $info['year'];
$hour = $info['hours'];
$min = $info['minutes'];
$sec = $info['seconds'];

$current_date = "$date/$month/$year == $hour:$min:$sec";

Ce code renvoie la date correcte mais le problème est que ce que je vois dans mon cpanel (heure du serveur) est différent. que ce que je reçois du code. Dans cpanel, le temps est CDT tandis que le code montre UTC que je reconfirme en utilisant le code suivant

<?php echo date("r == e"); ?>

Pourquoi cela se produit et quels changements je dois faire dans mon code afin que je puisse obtenir l'heure du serveur approprié.

21
user392406

Vous devez définir le fuseau horaire sur celui des fuseaux horaires que vous souhaitez.

// set default timezone
date_default_timezone_set('America/Chicago'); // CDT

$info = getdate();
$date = $info['mday'];
$month = $info['mon'];
$year = $info['year'];
$hour = $info['hours'];
$min = $info['minutes'];
$sec = $info['seconds'];

$current_date = "$date/$month/$year == $hour:$min:$sec";

Ou une version beaucoup plus courte:

// set default timezone
date_default_timezone_set('America/Chicago'); // CDT

$current_date = date('d/m/Y == H:i:s');
54
Shef

Essaye ça -

<?php
date_default_timezone_set('Asia/Kolkata');

$timestamp = time();
$date_time = date("d-m-Y (D) H:i:s", $timestamp);
echo "Current date and local time on this server is $date_time";
?>
7
Rohit Suthar

Non besoin d'utiliser date_default_timezone_set pour tout le script, spécifiez simplement le timezone que vous voulez avec un objet DateTime:

$now = new DateTime(null, new DateTimeZone('America/New_York'));
$now->setTimezone(new DateTimeZone('Europe/London'));    // Another way
echo $now->format("Y-m-d\TH:i:sO"); // something like "2015-02-11T06:16:47+0100" (ISO 8601)
5
Nasser Al-Wohaibi

Vous devez définir le fuseau horaire, cf http://www.php.net/manual/en/book.datetime.php

1
wonk0

Pour activer PHP Extension intl, suivez les étapes ..

  1. Ouvrez le fichier xampp/php/php.ini dans n'importe quel éditeur.
  2. Recherchez "; extension = php_intl.dll"
  3. veuillez supprimer le point-virgule de départ (;) comme:; extension = php_intl.dll. à. extension = php_intl.dll.
  4. Enregistrez le fichier xampp/php/php.ini.
  5. Redémarrez votre xampp/wamp.
0
Nick Bristol

Vous pouvez utiliser la fonction "system (string $ command [ int & $ return_var]): string". Pour le système Windows ("time") ;, system ("time> output.txt"); pour placer la réponse dans le fichier output.txt. Si vous prévoyez de déployer votre site Web sur le serveur de quelqu'un d'autre, vous ne voudrez peut-être pas coder en dur l'heure du serveur, car le serveur peut se déplacer vers un fuseau horaire inconnu. Ensuite, il peut être préférable de définir le fuseau horaire par défaut dans le fichier php.ini. J'utilise Hostinger et ils vous permettent de configurer cette valeur php.ini.

0
Harold Flatz

Vous devez définir le fuseau horaire sur celui des fuseaux horaires que vous souhaitez. laissez définir le fuseau horaire indien

// set default timezone
date_default_timezone_set('Asia/Kolkata');

$info = getdate();
$date = $info['mday'];
$month = $info['mon'];
$year = $info['year'];
$hour = $info['hours'];
$min = $info['minutes'];
$sec = $info['seconds'];

$current_date = "$date/$month/$year == $hour:$min:$sec";
0
Sani Kamal