2010-06-07 35 views

回答

12

例如:

<?php 
date_default_timezone_set('Africa/Johannesburg'); 
echo date('Y-m-d H:i:s', time()); 
+0

你至少應該事後恢復的時區。請參閱date_default_timezone_get – Artefacto 2010-06-07 08:08:39

+0

也想到這一點,但這個問題讓我不確定..也許整個網站希望南非時間..無論如何,好點,達到@aamir – 2010-06-07 08:14:58

+0

您可能想要添加此鏈接到您的答案: http://www.php.net/manual/en/timezones.africa.php – 2013-02-17 18:55:26

1

time()函數返回世界各地相同的值。它的返回值不依賴於當地時區。

要將時間值轉換爲當地時間,請調用localtime()函數。

5
$d = new DateTime("now", new DateTimeZone("Africa/Johannesburg")); 
echo $d->format("r"); 

 
Mon, 07 Jun 2010 02:02:12 +0200 

您可以更改格式。請參閱http://www.php.net/manual/en/function.date.php

time()給出自1970年1月1日00:00:00(不包括閏秒)以來的秒數,因此它不取決於時區。

編輯:對於一個倒計時,你可以這樣做:

$tz = new DateTimeZone("Africa/Johannesburg"); 
$now = new DateTime("now", $tz); 
$start = new DateTime("2010-06-11 16:00:00", $tz); 
$diff = $start->diff($now); 
echo "Days: " . $diff->format("%d") . "\n"; 
echo "Hours: " . $diff->format("%h") . "\n"; 
echo "Minutes: " . $diff->format("%i") . "\n"; 
echo "Seconds: " . $diff->format("%s") . "\n"; 
+0

我在倒數計時器中使用它... 其代碼: $ date = explode(「」,$ row ['Date' ]); // print $ date [0]。'>>'; list($ y,$ m,$ d)= explode(' - ',$ date [0]); list($ h,$ min,$ sec)= explode(':',$ date [1]); $ target = mktime($ h,$ min,$ sec,$ m,$ d,$ y); $ today = time(); $ difference =($ target- $ today); if($ difference <0)$ difference = 0; $ days_left = floor($ difference/60/60/24); $ hours_left = floor(($ difference - $ days_left * 60 * 60 * 24)/ 60/60); $ minutes_left = floor(($ difference - $ days_left * 60 * 60 * 24 - $ hours_left * 60 * 60)/ 60); 現在引導我如何甘蔗我把這段代碼。 – Aamir 2010-06-07 08:34:01

+0

@aamir Fayyaz我已經更新了答案。 – Artefacto 2010-06-07 08:46:33

+0

@ Artefacto,通過此代碼沒有顯示, – Aamir 2010-06-07 08:51:55