-2

我从数据库中获取了一些带有日期的数据:

$data['my_date'])

类型是日期:YYYY-MM-DD

如果 $data['my_date']) 介于 2 个日期之间,我想用 PHP 创建一个条件,例如:

if ($data['my_date'] >= 2009-01-01 && $data['my_date'] <= 2009-12-31) {
    $datas = '5';
}
else {
    $datas = 1;
}

它没有按预期工作,条件未验证。我该怎么办 ?

4

3 回答 3

1

您需要通过strtotime()将所有日期转换为时间戳,然后进行比较。

strtotime($data['my_date']) >= strtotime('2009-01-01')...
于 2013-07-30T10:48:13.153 回答
1

您可以使用strtotime()mktime()将日期转换为时间戳,然后进行比较。

于 2013-07-30T10:49:22.927 回答
1

日期没有文字语法,您应该将它们括在引号中并将它们视为字符串。如果您使用的是该YYYY-MM-DD格式,那么它可以按字母顺序排序,并且您当前的方法应该可以工作。

if ($data['my_date'] >= '2009-01-01' && $data['my_date'] <= '2009-12-31') {
    $datas = '5';
}
else {
    $datas = 1;
}

如果你不引用你的日期,你正在做整数运算:

$data['my_date'] >= 2009-01-01  ====> $data['my_date'] >= 2007
于 2013-07-30T13:15:07.547 回答