0

我可以比较像数字这样的字符串中的两个日期吗?或者我应该将它们重新输入为整数?

这段代码可以吗?

<?php
$date1 = "20130102";
$date2 = "20151012";

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

1 回答 1

3

在以下条件下,您的代码是安全且正确的:如果您的日期格式类似于 Ymd(根据 php 的日期函数

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

请注意,使用字符串作为日期的数据类型是一种代码异味。见此(第 7 期)

于 2013-02-02T17:14:24.797 回答