2012-02-01 105 views
0

我有以下代碼 $ time = strtotime(date('Y-m-d 00:00',strtotime(gmdate('Y-m-d H:i'))+ 0)); 它做一些utc轉換。在最後加上0也有點混亂。日期和gmdate有點混亂。 上面的回聲是1328083200 是一次嗎?日期戳?我將如何將其轉換回utc date or just a timestamp from now now

+0

你在那裏得到的是一個UNIX時間戳。我不太瞭解你的其他問題。而且,這段代碼非常令人費解。你想用這個做什麼? – deceze 2012-02-01 01:03:30

+0

它給了我......試圖讓它失去它 – Autolycus 2012-02-01 01:10:15

+0

那麼,它沒有太大的意義...... :) – deceze 2012-02-01 01:13:18

回答

2

strtotime($string)會將提供的$string(如果採用可識別的格式)轉換爲UNIX時間戳。 UNIX時間戳是UNIX紀元(1970年1月1日00:00:00(UTC))以來的秒數。

看起來您提供的代碼正試圖返回當天(UTC)開始時的UNIX時間戳,因此爲gmdate()。在最後的0可能是一個黑客的嘗試,以確保返回一個整數,即使它是零。

請參閱這些函數的PHP文檔:

這是cludgy和哈克,但我認爲你可以縮短現有代碼到:

$time = strtotime(gmdate('Y-m-d 00:00')); 

我只是提供這個作爲,有時和不知道的原因(我個人指責gremlins)這樣的瘋狂代碼是瘋狂的原因...

+0

那麼它給了我什麼?它是否給我當天的上午12:00? – Autolycus 2012-02-01 08:23:52

+0

是的,就像我所說的「...返回UNIX時間戳爲當天的開始(UTC)...」因此,如果由於時間差異,您的當地日期是1月2日,但在格林威治是1月1日,它將在1月1日00:00 am(非1月2日00:00 am,這將是你當地的一天的開始)返回Unix時間戳。 – 2012-02-01 11:38:05

+0

嗯..想知道爲什麼有人想這樣做。這可能會導致很多問題。 – Autolycus 2012-02-01 19:45:18

0

它迴應Unix時間戳。使用date()將其轉換爲