PHP 日期之间的比较
PHP Comparison between dates
我有这个代码:
$val_datefrom = strtotime("2015-01-01");
$val_datefrom = date('Y-m-d',$val_datefrom);
$val_dateto = strtotime("2015-09-30");
$val_dateto = date('Y-m-d',$val_dateto);
$dsdate = strtotime("2015-01-07");
$dsdate = date('Y-m-d',$dsdate);
echo $val_datefrom .'>='. $dsdate .'&&'. $val_dateto .'<='. $dsdate.'<br>';
var_dump($val_datefrom >= $dsdate && $val_dateto <= $dsdate);
var_dump($val_datefrom >= $dsdate);
var_dump($val_dateto <= $dsdate);
if($val_datefrom >= $dsdate && $val_dateto <= $dsdate){
// some codes if true
}
我确信我的代码是正确的,给出了确切的值,但它仍然给我一个 null
值。我尝试调试我的代码,这是 var_dump()
[=15 的结果=]
2015-01-01>=2015-01-07&&2015-09-30<=2015-01-07
bool(false) bool(false) bool(false)
2015-01-01>=2015-01-08&&2015-09-30<=2015-01-08
bool(false) bool(false) bool(false)
对此有什么想法吗?
虽然这是一种不同的方法,但您是否考虑过使用 DateTime::diff()
?这是比较 PHP.
中日期的简单方法
糟糕:
<?php
$datetime1 = new DateTime('2009-10-11');
$datetime2 = new DateTime('2009-10-13');
$interval = $datetime1->diff($datetime2);
echo $interval->format('%R%a days');
?>
程序:
<?php
$datetime1 = date_create('2009-10-11');
$datetime2 = date_create('2009-10-13');
$interval = date_diff($datetime1, $datetime2);
echo $interval->format('%R%a days');
?>
输出:
+2 days
你可以用这个做一个 if 语句而不需要额外的步骤:
if(($val_datefrom->diff($dsdate)->format('%R%a') >= 0)
&& ($val_dateto->diff($dsdate)->format('%R%a') <= 0)){ ... }
了解更多信息 here
我有这个代码:
$val_datefrom = strtotime("2015-01-01");
$val_datefrom = date('Y-m-d',$val_datefrom);
$val_dateto = strtotime("2015-09-30");
$val_dateto = date('Y-m-d',$val_dateto);
$dsdate = strtotime("2015-01-07");
$dsdate = date('Y-m-d',$dsdate);
echo $val_datefrom .'>='. $dsdate .'&&'. $val_dateto .'<='. $dsdate.'<br>';
var_dump($val_datefrom >= $dsdate && $val_dateto <= $dsdate);
var_dump($val_datefrom >= $dsdate);
var_dump($val_dateto <= $dsdate);
if($val_datefrom >= $dsdate && $val_dateto <= $dsdate){
// some codes if true
}
我确信我的代码是正确的,给出了确切的值,但它仍然给我一个 null
值。我尝试调试我的代码,这是 var_dump()
[=15 的结果=]
2015-01-01>=2015-01-07&&2015-09-30<=2015-01-07
bool(false) bool(false) bool(false)
2015-01-01>=2015-01-08&&2015-09-30<=2015-01-08
bool(false) bool(false) bool(false)
对此有什么想法吗?
虽然这是一种不同的方法,但您是否考虑过使用 DateTime::diff()
?这是比较 PHP.
糟糕:
<?php
$datetime1 = new DateTime('2009-10-11');
$datetime2 = new DateTime('2009-10-13');
$interval = $datetime1->diff($datetime2);
echo $interval->format('%R%a days');
?>
程序:
<?php
$datetime1 = date_create('2009-10-11');
$datetime2 = date_create('2009-10-13');
$interval = date_diff($datetime1, $datetime2);
echo $interval->format('%R%a days');
?>
输出:
+2 days
你可以用这个做一个 if 语句而不需要额外的步骤:
if(($val_datefrom->diff($dsdate)->format('%R%a') >= 0)
&& ($val_dateto->diff($dsdate)->format('%R%a') <= 0)){ ... }
了解更多信息 here