比较日期时,操作员不能正常工作
$today="27-02-2015";
$end="24-06-2015";
if($end < $today){
echo "yes";
}else{
echo "no";
}
答案 0 :(得分:4)
您在这里进行字符串比较,但不会告诉您哪个日期更晚/更早。您可以将这些日期更改为DateTime并进行比较
$a = DateTime::createFromFormat('d-m-Y', '27-02-2015');
$b = DateTime::createFromFormat('d-m-Y', '24-06-2015');
if ($b < $a) {
echo " do something here";
}
答案 1 :(得分:2)
将字符串更改为“2015-02-27”格式 - 然后是年份,然后是月份,您可以比较相同的数字
答案 2 :(得分:0)
应该是
$today=strtotime("27-02-2015");
$end=strtotime("24-06-2015");
if($end < $today){
echo "yes";
}else{
echo "no";
}
答案 3 :(得分:0)
使用您的语言环境设置指定的方式指定的字符串构建日期对象,并计算纪元毫秒的差异:
$s_today = '02/27/2015';
$s_end = '06/24/2015';
date_default_timezone_set ( 'UTC' ); # required by strtotime. Actual value doesn't matter as you are interested in the date diff only
$today = strtotime($s_today);
$end = strtotime($s_end);
if ($end < $today) {
echo "less ( $s_today < $s_end )";
} else {
echo "more ( $s_today > $s_end )";
}
<强> 注意 强>
@ n-dru的方法也是可行的。这取决于您的代码片段必须处理的日期规格以及您希望对日期执行更多计算。在后一种情况下,我选择支持对纪元秒的归一化。否则它可能不值得麻烦。