如果日期格式不同,请检查哪个日期时间更早

时间:2018-09-07 09:54:48

标签: php date datetime

如果格式不同,如何检查哪个日期更早,例如:

$date1 = "2018-05-09 12:31:51"; // "Y-m-d H:i:s" format
$date2 = "06/09/2018"; // "d/m/Y" format

3 个答案:

答案 0 :(得分:3)

DateTime::createFromFormat在这里很方便

尝试一下:

$date1 = "2018-05-09 12:31:51"; // "Y-m-d H:i:s" format
$date2 = "06/09/2018"; // "d/m/Y" format

$objDateA = DateTime::createFromFormat('Y-m-d H:i:s', $date1);
$objDateB = DateTime::createFromFormat('d/m/Y', $date2);


if ($objDateA < $objDateB)
{
    ...
}

答案 1 :(得分:0)

最简单的方法是使用名为Carbon的库。 (https://carbon.nesbot.com/docs/

您可以这样做:

use Carbon\Carbon;
$date1 = "2018-05-09 12:31:51";
$date1 = Carbon::createFromFormat('Y-d-m H:i:s', $date1);

$date2 = "06/09/2018"; // "d/m/Y" format
$date2 = Carbon::createFromFormat('d-m-Y', $date2);

if ($date1 < $date2) {
     echo "Date 1 is older than Date 2";
else {
     echo "Date 1 is newer than Date 2";
}

答案 2 :(得分:0)

尝试一下。

$date1_dt = new DateTime($date1);
$date2_dt = new DateTime($date2);

if ($date1_dt > $date2_dt) 
 { /* Do something */ }

DateTime解析器可能不支持日期字符串,因此您可以像这样初始化日期。

$date1_dt = DateTime::createFromFormat('Y-m-d H:i:s', $date1);
$date2_dt = DateTime::createFromFormat('d/m/Y', $date2);

 if ($date1_dt > $date2_dt) 
 { /* Do something */ }