2011-11-03 64 views
4

考慮任何UNIX的時間戳t之前取午夜的時間戳,我想T.給定的時間戳

之前獲取午夜的時間戳的給定時間戳可以是任意整數:現在也,今天(未遠[])或者(不太遠[])。

有那麼一個更清潔的方式(僞):

<?php 
$midnight = strtotime("{date('d',$ts)}-{date('m',$ts)}-{date('Y', $ts)} midnight"); 
?> 

感謝。

[*] 1990年的地方和

回答

6

我會做它作爲

$midnight = strtotime(date('Y-m-d',$ts).' 00:00:00'); 

...但是這是否是清潔劑/越好有爭議...

+0

謝謝。我擔心通過strtotime的路線是唯一的「實用」方法。你的這些是最乾淨的。 – berkes

1

的Et瞧」到2020年之間

<?php  
$midnight = strtotime(date('d-m-Y',$ts)); 
echo date('d-m-Y H:i:s',$ts);  // output 03-11-2011 12:43:41 
echo date('d-m-Y H:i:s',$midnight); // ouput 03-11-2011 00:00:00 
?> 
3

因爲一整天是86400秒,你應該可以這樣做:

$midnight = $ts - $ts%86400; 

但是,這不會考慮可能已應用於unix時間戳的任何閏秒。

這會比使用strtotime更多的性能,但可能只是如果你要在嚴格的循環中做到這一點很重要。

相關問題