2011-07-08 24 views
17

Chcę pobrać datę i godzinę z serwera i zgodnie z nim zrobić coś. Do tego użyłem poniższy kod:Jak uzyskać datę i godzinę z serwera

$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"; 

Ten kod zwraca prawidłową datę, ale problemem jest to, że to, co widzę w moim cpanel (czasu serwera) jest diff. niż to, co otrzymuję z kodu. W czasie cPanel jest CDT natomiast z kodu to pokazano UTC którą potwierdzić stosując następujący kod

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

Dlaczego tak się dzieje i jakie zmiany muszę zrobić w moim kodu tak, że mogę dostać odpowiedni czas serwera.

Odpowiedz

46

set the timezone należy do jednej z timezones chcesz.

// 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"; 

Albo znacznie krótsza wersja:

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

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

Jak wyświetlić je w czasie rzeczywistym ... –

2

nr potrzeby korzystania date_default_timezone_set dla całego skryptu, wystarczy podać timezone chcesz z obiektu 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

Wypróbuj to -

<?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"; 
?> 
+0

AFAIK $ data_time musi znajdować się poza ciągiem znaków? – user7185318

+0

Możesz zapisać zmienną php między podwójnymi cudzysłowami i uzyskasz poprawne wyniki, ale jeśli użyjesz między pojedynczymi cudzysłowami, wynik będzie tą samą nazwą zmiennej. –

0

Aby umożliwić PHP Extension Intl, wykonaj kroki ..

  1. Otwórz plik xampp/php/php.ini w dowolnym edytorze.
  2. Wyszukaj "; rozszerzenie = php_intl.dll"
  3. uprzejmie usuń początkowy średnik (;) Podoba Ci się:; extension = php_intl.dll. do. rozszerzenie = php_intl.dll.
  4. Zapisz plik xampp/php/php.ini.
  5. Uruchom ponownie urządzenie xampp/wamp.
Powiązane problemy