以字符串格式比较两个日期


Compare two dates in string format

我可以像数字一样比较字符串中的两个日期吗?还是应该将它们重新键入int?

这个代码可以吗?

<?php
$date1 = "20130102";
$date2 = "20151012";
if ($date1 < $date2){
    echo "date1 < date2";
} elseif ($date1 > $date2){
    echo "date1 > date2";
} else {
    echo "date1 = date2";
}
?>

您的代码在以下条件下是安全和正确的:如果您的日期格式像Ymd(根据php的日期函数)

这样做的原因是,在我可以想象的所有字符集中,字符0-9的排序与数字0-9的排序完全相同。如果你使用前导0,你的字符串的排序就与数字一样。

N。B.使用字符串作为日期的数据类型是一种代码味道。参见本页(第7页)