2017-05-04 59 views
0

我面臨這個問題在我的date顯示少開一天我有這個unix timestamp1275429600這應該是02-06-2010卻是露出01-06-2010爲什麼我的一天是從Unix時間戳少開一天在PHP

我的預期輸出:02-06-2010但得到01-06-2010

這裏是我的代碼,我試過。

$timestamp=1275429600; 

echo gmdate("d-m-Y", $timestamp); 
+2

你的時區設置?因爲'1275429600'是'2010年6月1日22:00:00 GMT/UTC',因此預期的輸出不應該是'02-06-2010' –

+0

使用此'date_default_timezone_set'來設置默認時區。 –

+0

我在亞洲時區我,亞洲/ kolkata – EaB

回答

0

的差異是由於你的時區&格林威治時區的時區差。

gmdate表現爲date方法,只不過它返回格林威治標準時間(GMT)返回的時間。

GMT: Tue, 01 Jun 2010 22:00:00 GMT 
Your time zone: 2010-6-2 03:30:00 GMT+5:30 
2

試試這個希望這會幫助你。

希望第一行文檔gmdate能夠告訴所有事情本身。

​​

<?php 
ini_set('display_errors', 1); 
date_default_timezone_set("asia/kolkata"); 
echo date("d-m-Y", 1275429600); 

輸出: 02-06-2010

+0

@EaB希望你在找什麼.. –

1

gmdate是GMT時間,而不是在你的時區的日期。

因此您需要使用Date('Z')其中z是UTC UTC偏移的區域指示符。

<?php 
date_default_timezone_set("Asia/Kolkata"); 
$timestamp=1275429600; 

echo gmdate("d-m-Y", $timestamp + date("Z")); 
?> 
0

檢查時區 echo date_default_timezone_get();

可以設置時區

date_default_timezone_set(時區);

相關問題