回答
检查PHP的strtotime
功能全到你设定的日期/时间转换为时间戳:http://php.net/manual/en/function.strtotime.php
如果strtotime
不能正确处理您的日期/时间格式(“4:00 PM”可能会工作,但不会“在4PM“),你需要使用字符串函数,例如substr
解析/更正您的格式并通过另一个函数(例如, mktime
。
然后将得到的时间戳与当前日期/时间(if ($calulated_timestamp > time()) { /* date in the future */ }
)进行比较,以查看设置的日期/时间是过去还是未来。
我建议阅读日期/时间函数上的PHP文档,并在您遇到困难时返回一些源代码。
由于PHP> = 5.2.0可以使用DateTime
类作为这样:
if (new DateTime() > new DateTime("2010-05-15 16:00:00")) {
# current time is greater than 2010-05-15 16:00:00 and thus in the past
}
传递给DateTime constructor的字符串进行解析according to these rules。
注意的是,还可以使用time
和strtotime
功能。 See original answer。
时间戳有一定的局限性交配,一些bug太多,例如时间戳无法在1970年之前办理的日期并在2038年后(见伊瓦尔科斯特的回答) – 2014-08-02 08:52:20
真棒的答案! :) – 2014-12-04 12:32:56
如果您使用的是UTC日期(如您应该那样),我们经常会看到滥用新的DateTime()而不使用参数,更喜欢使用新的DateTime(“now”,new DateTimeZone('UTC'))。这将防止您的应用程序在日期中误解错误。我建议你将它存储在一个函数的静态变量,一个类的静态或在你的运行过程中的其他地方... – Loenix 2016-10-12 08:01:10
还有DateTime类,它为比较运算符实现了一个函数。
// $now = new DateTime();
$dtA = new DateTime('05/14/2010 3:00PM');
$dtB = new DateTime('05/14/2010 4:00PM');
if ($dtA > $dtB) {
echo 'dtA > dtB';
}
else {
echo 'dtA <= dtB';
}
它实现的功能是什么? – 2017-09-02 03:57:16
dateTime对象范围从过去大约2920亿年到未来相同。时间戳功能有一个限制(如果我没有记错,从1970年开始到2038年)。
我有这个日期进行比较的,需要一些调整问题
function getDatetimeNow() {
$tz_object = new DateTimeZone('Europe/Belgrade');
$datetime = new DateTime();
$datetime->setTimezone($tz_object);
return $datetime->format('Y\-m\-d\ h:i:s');
}
$currentDate = getDatetimeNow();
$dtA = new DateTime($currentDate);
$dtB = new DateTime($date);
if ($dtA > $dtB) {
$active = 0;
return $active;
}
else {
$active = 1;
return $active;
}
- 1. 检查日期时间是否在当前日期
- 2. 检查时区的日期是否通过当前时间
- 3. 如何检查日期时间是否超过20秒
- 4. Javascript:如何检查时间戳是否属于当前日期?
- 5. 检查日期时间字段是否通过当前时间戳
- 6. 如何检查时间戳是否为当前日期的时间戳
- 7. 如何从当前日期时间扣除时间/日期
- 8. 检查给定的日期时间是否在当前日期时间的范围内(+/- 1小时)
- 9. 如何创建日期时间列表并检查它是否与当前日期时间匹配,然后打印当前日期时间?
- 10. Java 8日期时间检查期间是否包含特定日期
- 11. Moment.js检查日期时间是否在一组日期和时间之间
- 12. 检查日期是否在当前时间的7天之内
- 13. MySQL检查当前日期时间是否在2个字段日期和时间之间
- 14. 检查当前日期是否在开始日期和结束日期之间
- 15. 当前时间和日期
- 16. PHP - 如何检查当前日期/时间是否在两个工作日之间,包括时间(从 - 到)
- 17. 比较日期时间到MySQL中的当前日期时间?
- 18. MySQL日期时间和当前日期时间函数
- 19. 检查时间(开始日期和结束日期)是否削减时间段
- 20. Perl:检查当前日期是否在两个给定日期之间
- 21. 检查当前日期是否在两个给定日期之间
- 22. Cordova:Android设备当前日期/时间
- 23. 如何检查给定的日期时间对象是否在两个日期时间之间?
- 24. 检查当前日期时间是否大于或等于数据库中的日期和时间
- 25. 检查,如果日期是旧的,在Rails的当前时间
- 26. 检查日期时间
- 27. 如何检查日期时间列值等于当前日期在SQL条款
- 28. jquery如何检查日期是否小于当前日期
- 29. 如何检查当前日期是否大于结束日期?
- 30. 如何检查移动日期是否为当前日期
看到伊瓦尔·科斯特的回答 – 2014-08-02 08:53:48