在日期时间首先调用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