我有以下几点
$var = "2010-01-21 00:00:00.0"
我想将这个日期与今天的日期进行比较(即我想知道这个$var是否在今天之前或等于今天)
我需要使用什么函数?
我有以下几点
$var = "2010-01-21 00:00:00.0"
我想将这个日期与今天的日期进行比较(即我想知道这个$var是否在今天之前或等于今天)
我需要使用什么函数?
当前回答
试试这个:
if (date("Y-m-d",strtotime($funding_dt)) >= date("Y-m-d",strtotime('31-01-2007')))
{
echo "ok";
} else {
echo "not";
}
其他回答
试试这个:
if (date("Y-m-d",strtotime($funding_dt)) >= date("Y-m-d",strtotime('31-01-2007')))
{
echo "ok";
} else {
echo "not";
}
几年后,我赞同鲍比·杰克的观察:过去的24小时不是今天!!我很惊讶这个答案得到了这么多的好评……
要比较某个日期是否小于、等于或大于另一个日期,首先你需要把它们“调低”到一天的开始。换句话说,确保你说的是两个日期的相同00:00:00时间。 这可以简单而优雅地完成:
strtotime("today") <=> strtotime($var)
如果$var的时间部分像OP指定的那样是00:00:00。
将<=>替换为你需要的任何东西(或在php 7中保持这样)
而且,很明显,我们说的是两个时区相同。 有关支持的时区列表
比较date - time对象:
(我选择了10天-任何超过10天的都是“旧”,否则是“新”)
$now = new DateTime();
$yourdate = new DateTime("2021-08-24");
$diff=date_diff($yourdate,$now);
$diff_days = $diff->format("%a");
if($diff_days > 10){
echo "OLD! " . $yourdate->format('m/d/Y');
}else{
echo "NEW! " . $yourdate->format('m/d/Y');
}
strtotime($var);
将其转换为时间值
time() - strtotime($var);
给出自$var后的秒数
if((time()-(60*60*24)) < strtotime($var))
将检查$var是否在最后一天内。
扩展Josua在w3schools上的回答:
//create objects for the dates to compare
$date1=date_create($someDate);
$date2=date_create(date("Y-m-d"));
$diff=date_diff($date1,$date2);
//now convert the $diff object to type integer
$intDiff = $diff->format("%R%a");
$intDiff = intval($intDiff);
//now compare the two dates
if ($intDiff > 0) {echo '$date1 is in the past';}
else {echo 'date1 is today or in the future';}
我希望这能有所帮助。我在stackoverflow上的第一篇文章!