我有以下几点
$var = "2010-01-21 00:00:00.0"
我想将这个日期与今天的日期进行比较(即我想知道这个$var是否在今天之前或等于今天)
我需要使用什么函数?
我有以下几点
$var = "2010-01-21 00:00:00.0"
我想将这个日期与今天的日期进行比较(即我想知道这个$var是否在今天之前或等于今天)
我需要使用什么函数?
当前回答
几年后,我赞同鲍比·杰克的观察:过去的24小时不是今天!!我很惊讶这个答案得到了这么多的好评……
要比较某个日期是否小于、等于或大于另一个日期,首先你需要把它们“调低”到一天的开始。换句话说,确保你说的是两个日期的相同00:00:00时间。 这可以简单而优雅地完成:
strtotime("today") <=> strtotime($var)
如果$var的时间部分像OP指定的那样是00:00:00。
将<=>替换为你需要的任何东西(或在php 7中保持这样)
而且,很明显,我们说的是两个时区相同。 有关支持的时区列表
其他回答
这种格式非常适合于标准字符串比较。
if ($date1 > $date2){
//Action
}
要以这种格式获取今天的日期,只需使用:date("Y-m-d H:i:s")。
So:
$today = date("Y-m-d H:i:s");
$date = "2010-01-21 00:00:00";
if ($date < $today) {}
这就是这种格式的美妙之处:它很好地排序。当然,这可能会降低效率,这取决于您的具体情况,但它也可能更方便,并导致更可维护的代码-我们需要了解更多才能真正做出判断。
对于正确的时区,您可以使用,例如,
date_default_timezone_set('America/New_York');
点击这里查看可用的PHP时区。
要完成BoBby Jack,使用DateTime对象,如果你有php 5.2.2+:
if(new DateTime() > new DateTime($var)){
// $var is before today so use it
}
一些给出的答案没有考虑到今天!
这是我的建议。
$var = "2010-01-21 00:00:00.0"
$given_date = new \DateTime($var);
if ($given_date == new \DateTime('today')) {
//today
}
if ($given_date < new \DateTime('today')) {
//past
}
if ($given_date > new \DateTime('today')) {
//future
}
几年后,我赞同鲍比·杰克的观察:过去的24小时不是今天!!我很惊讶这个答案得到了这么多的好评……
要比较某个日期是否小于、等于或大于另一个日期,首先你需要把它们“调低”到一天的开始。换句话说,确保你说的是两个日期的相同00:00:00时间。 这可以简单而优雅地完成:
strtotime("today") <=> strtotime($var)
如果$var的时间部分像OP指定的那样是00:00:00。
将<=>替换为你需要的任何东西(或在php 7中保持这样)
而且,很明显,我们说的是两个时区相同。 有关支持的时区列表
试试这个:
if (date("Y-m-d",strtotime($funding_dt)) >= date("Y-m-d",strtotime('31-01-2007')))
{
echo "ok";
} else {
echo "not";
}