Php 时间-午夜前一秒

Php 时间-午夜前一秒,php,Php,我试图这样做: $date_string = strtotime('6 Mar, 2011 23:59:59'); 但我认为由于某种原因,PHP无法解释它,因为它返回的是空的。我试过这个: $date_string = strtotime('6 Mar, 2011 midnight'); 上述方法有效,但我需要它在午夜前一秒,即一天的最后一秒。如何让Strotime在不更改2011年3月6日零件的情况下返回此文件?如果我使用2011年3月6日23:59:59,它对我有效。有没有可能改变输入格

我试图这样做:

$date_string = strtotime('6 Mar, 2011 23:59:59');
但我认为由于某种原因,PHP无法解释它,因为它返回的是空的。我试过这个:

$date_string = strtotime('6 Mar, 2011 midnight');

上述方法有效,但我需要它在午夜前一秒,即一天的最后一秒。如何让Strotime在不更改2011年3月6日零件的情况下返回此文件?

如果我使用
2011年3月6日23:59:59
,它对我有效。有没有可能改变输入格式

除此之外,您当然可以从时间戳中减去1秒。但是请注意,您需要使用3月7日:

$date_string = strtotime('7 Mar, 2011 midnight') - 1;

为什么不使用
mktime

mktime(23,59,59,3,6,2011);

如果您使用的是PHP5.3或更高版本,则可以使用该类

该函数允许您手动指定如何解析输入日期字符串

$date = '6 Mar, 2011 23:59:59';
$timestamp = DateTime::createFromFormat('d M, Y H:i:s', $date)->getTimestamp();

希望这有帮助。我用了这个,它在午夜前给出了今天的时间戳。违反直觉

$today_timestamp =  strtotime('tomorrow - 1 second');

改变格式是可能的,但这样做会有点痛苦。奇怪的是,
strotime
是如何在日期部分工作的,但添加了时间部分,它就不工作了。也许我可以
strotime
日期部分,传递到
date()
以您的方式格式化它,然后再次将它带回strotime-嗯,似乎效率有点低?但我想这会管用的。我上面关于把格式改成类似Pekka的东西的评论对我来说很管用。我想我会坚持到现在。我真的不想改变我的日期格式或做任何解析,如果我必须的话,我希望它是非常小的!甜蜜,DateTime看起来很棒,必须开始使用