php如何检查日期字符串是否在日期之间

php如何检查日期字符串是否在日期之间,php,Php,我有一个连续的日期。i、 e:2018年10月18日 以及对象中的日期:$pnrProduct['date']。i、 e 2018年10月20日 我想检查第二个日期是否比第一个日期大(在这种情况下,它比第一个日期大) 我该怎么做呢?该功能正是您所需要的。它接受一个可日期的字符串,并将其转换为从历元开始经过的秒数 简单来说: if (strtotime(str_replace("/", "-", "18/10/2018")) > s

我有一个连续的日期。i、 e:2018年10月18日

以及对象中的日期:$pnrProduct['date']。i、 e 2018年10月20日

我想检查第二个日期是否比第一个日期大(在这种情况下,它比第一个日期大)

我该怎么做呢?

该功能正是您所需要的。它接受一个可日期的字符串,并将其转换为从历元开始经过的秒数

简单来说:

if (strtotime(str_replace("/", "-", "18/10/2018")) > strtotime(str_replace("/", "-", "20/10/2018")))
  echo "Greater";
else
  echo "Smaller";
只是提醒一下:

strtotime("18-10-2018")
int(1539835200)

strtotime("20-10-2018")
int(1540008000)
您可能需要更换分离器,如下所示:

通过查看各个组件之间的分隔符,可以消除m/d/y或d-m-y格式的日期歧义:如果分隔符是斜杠(/),则假定为美式m/d/y;而如果分隔符是破折号(-)或点(.),则假定为欧洲d-m-y格式。但是,如果年份以两位数格式给出,且分隔符为破折号(-),则日期字符串将解析为y-m-d

为了避免潜在的歧义,最好使用ISO 8601(YYYY-MM-DD)日期或在可能的情况下使用


必须使用strotime来分析到目前为止的字符串

$firstDate = strtotime(str_replace("/", "-", "20/10/2018"));
$secondDate = strtotime(str_replace("/", "-", $pnrProduct['Date']));

if ($firstDate < $secondDate ) { /* do Something */ }
$firstDate=strtotime(str_替换(“/”、“-”、“20/10/2018”);
$secondDate=strtotime(str_替换(“/”、“-”、$pnrProduct['Date']);
如果($firstDate<$secondDate){/*做点什么*/}

简单地使用
DateTime
类怎么样

<?php
$datetime1 = DateTime::createFromFormat('d/m/Y','18/10/2018');
$datetime2 = DateTime::createFromFormat('d/m/Y','20/10/2018');

if($datetime1 > $datetime2){
    echo 'datetime1 greater than datetime2';
} else {
    echo 'datetime2 greater than datetime1';
}
?>


演示:

@Roi欢迎光临……这行不通。检查我的答案为什么!啊,是的,谢谢你!我正在编辑我的帖子