Date 在PHP中比较两个日期的正确方法是什么?
我有以下代码来比较PHP中的两个日期,哪一个是合适的方法Date 在PHP中比较两个日期的正确方法是什么?,date,php,Date,Php,我有以下代码来比较PHP中的两个日期,哪一个是合适的方法 <?php $var = date('d-m-Y',strtotime('29-05-2012')); $var1 = date('d-m-Y',strtotime('27-06-2012')); echo $var; //29-05-2012 echo $var1; //27-06-2012 if($var1 >= $var) //method 1 { echo 'var1 is future date'
<?php
$var = date('d-m-Y',strtotime('29-05-2012'));
$var1 = date('d-m-Y',strtotime('27-06-2012'));
echo $var; //29-05-2012
echo $var1; //27-06-2012
if($var1 >= $var) //method 1
{
echo 'var1 is future date';
}
if(strtotime($var1) >= strtotime($var)) //method 2
{
echo 'var1 is future date(second if)';
}
?>
在上述两种方法中,方法1不起作用,在PHP中比较两个日期不是正确的方法吗?否,第一种方法不正确,因为
$var1
和$var
都是字符串,所以不能这样比较它们
但是,strotime()会创建unix时间戳(整数),因此您可以也应该这样比较它们。否,第一种方法是不正确的,因为
$var1
和$var
都是字符串,所以您不能这样比较它们
但是,strotime()创建unix时间戳(整数),因此您可以也应该这样比较它们。根据您的php版本>=5.3您可以尝试根据您的php版本>=5.3您可以尝试只需将日期保留为字符串,并在
if()
中使用strotime
进行转换
只需将日期保留为字符串,并在
if()
中使用strotime
进行转换即可
$time1=strotime('29-05-2012');#<代码>$time1=STROTIME('29-05-2012');# 为什么不:
if (mktime(0,0,0,12,31,2012) > mktime(0,0,0,6,25,2011)) {
echo "12/31/2012 is after 6/25/2011";
}
为什么不:
if (mktime(0,0,0,12,31,2012) > mktime(0,0,0,6,25,2011)) {
echo "12/31/2012 is after 6/25/2011";
}
忘记你想要比较日期,所以这可能不是你想要的。忘记你想要比较日期,所以这可能不是你想要的。你是否尝试过用Y-m-d格式比较日期,而不是你尝试过用Y-m-d格式比较日期,但在某些情况下,方法1工作正常,我可以知道原因吗?那是因为当使用=
进行比较时,它会被转换成整数,所以类似于29052012
和27062012
。然而,在这种情况下,问题是第一个整数更大,而第二个日期更晚。但在某些情况下,方法1工作正常,请问原因是什么?这是因为当使用=
进行比较时,它会转换为整数,因此类似于29052012
和27062012
。然而,在这种情况下,问题是第一个整数更大,而第二个日期更晚。
if (mktime(0,0,0,12,31,2012) > mktime(0,0,0,6,25,2011)) {
echo "12/31/2012 is after 6/25/2011";
}
$date1=date('d/m/y');
$tempArr=explode('_', '31_12_11');
$date2 = date("d/m/y", mktime(0, 0, 0, $tempArr[1], $tempArr[0], $tempArr[2]));