2013-06-19 50 views
0

我有以下的PHP代碼,是爲了格式化當前日期和時間:PHP time()函數返回的時代,而不是當前的時間

$rawdatetime = time(); 
$datetime = date('Y-m-d', $rawdatetime) . 'T' . date('H:i:s', $rawdatetime) . '.000Z'; 
$this->debug($datetime); 

的格式似乎是工作的罰款,但它不斷輸出它是1970年的;我得到以下輸出:

1970-01-01T00:00:00.000Z 

我的猜測是我的服務器配置不正確,但我的谷歌搜索沒有給我任何線索。如果有幫助,我正在運行WAMP。

在此先感謝您的任何建議。

編輯:它似乎是日期和時間功能正常工作;但將它們分配給一個變量是什麼問題。任何解決上述格式的工作都會受到歡迎。但我也想知道爲什麼會出現這個問題。

+2

FYI:節省時間()爲變量的步驟是多餘的,那是什麼日期()默認使用。試試簡單的回顯時間()你會得到什麼? – Jessica

+0

'var_dump(time());'yield? – GordonM

+0

謝謝傑西卡,但是如果在午夜時分附近跑步,日期和時間不匹配的可能性非常小,只要我按照自己的方式進行操作即可。 – TheCatWhisperer

回答

1

首先,你並不需要使用time()都在這裏,因爲date()將使用當前時間爲默認值,如果你沒有一個值傳遞給該參數。其次,您使用兩個獨立的date()調用,用"T"分隔。請注意,格式爲date()可以接受硬編碼字符,如T;你只需要用反斜槓來轉義它們,所以你不需要把它分成兩個函數調用。

整個代碼看起來是這樣的:

$datetime = date('Y-m-d \T H:i:s.\0\0\0\Z'); 

其中給出2013-06-19 T 11:18:53.000Z

+0

謝謝,這個工作完美。但我仍然好奇,爲什麼當我使用其他方法時它不起作用。 – TheCatWhisperer

+0

有些東西告訴我,你在'$ rawdatetime'變量名稱中的實際代碼中只有一個拼寫錯誤,而未定義的變量被評估爲0 –

+0

是的,它聽起來像是一個錯字。 PHP可能有它的缺點,但它肯定沒有你描述的那種基本的變量處理問題。如果它有這樣的問題,它會得到任何地方。 – Spudley

0

它適用於我(回聲時,而不是$this->debug)完美。因此,無論您是否有錯誤的PHP版本,或者該問題不在您的代碼示例中。這是我做過什麼:

<?php 

$rawdatetime = time(); 
$datetime = date('Y-m-d', $rawdatetime) . 'T' . date('H:i:s', $rawdatetime) . '.000Z'; 
echo $datetime,"\n"; 
相關問題