在日期時間首先調用strtotime()
等函數嗎?該函數將返回對應於日期和時間的Unix時間戳。如果時間是0(即午夜),從它減去1(即帶走1秒),結果將是23:59:59的時間。
$event_end = '2010-07-30 00:00:00';
$event_end = strtotime($event_end);
$event_end--;
$event_end = date("Y-m-d H:i:s",$event_end);
echo $event_end; //This will result in '2010-07-29 23:59:59'
PHP看到datetime值(如從MySQL查詢爲例)作爲簡單的字符串,除非它們是在這種情況下,我不認爲從中減去會做任何事情的DateTime對象。運算符影響值的唯一方法是如果它是時間戳整數。
編輯: 啊,我看它使用mktime()
。這也返回一個Unix時間戳,因此可以數學運算。所以,要回答你的問題,$event_end--;
的確減去了一秒。
更新的代碼:
$event_end = mktime(0, 0, 0, 7, 30, 2010);
$event_end--;
$event_end = date("Y-m-d H:i:s",$event_end);
echo $event_end; //This will result in '2010-07-29 23:59:59'
不是你的問題的答案,但對於日期時間對象,最好使用'Datetime :: add()'和'Datetime :: sub()'http://au.php.net/manual/en /datetime.signed.php – 2010-07-30 12:33:15
$ event_end中的確切內容是什麼? – Toto 2010-07-30 12:36:22