【发布时间】:2018-09-25 02:49:52
【问题描述】:
我在试图找到匹配的格式进行比较时遇到了各种各样的问题,我不明白要比较 2 个日期怎么这么难,我想它就在我上面。
我在 MySQL 数据库中有一个日期:2017 年 12 月 20 日
报告日期是:19/01/18(最终将是今天的日期,但我正在测试旧文件)
我只想查找 0-30 天、31-60 天、61-90 天和 91 天以上的日期
我将日期转换为时间戳,以便进行比较 > 或
我尝试转换为 DateTime 并使用 date_sub,但它似乎很复杂......
我要做的就是检查数据库中的日期字符串是否在日期范围之一内,但我很挣扎。
我尝试使用带有“-30 天”的 strtotime 我用 date_sub 尝试了 DateTime
我想我现在真的很困惑,什么都想不通
这是我所拥有的:
$RO_Date = date_format( date_create_from_format( 'd/m/y', $RO["RO Date"] ), 'Y-m-d' );
$todaysDate = date_format(date_create_from_format('d/m/y', '19/01/18'), 'Y-m-d' );// Using date file was sent
echo $RO_Date;
echo ' ('.strtotime( $RO_Date).') ';
echo ' <br> ';
echo $todaysDate;
echo ' (' . strtotime($todaysDate) . ') ';
echo ' <br> ';
echo ' -30 Days ';
echo ' (' . date("Y-m-d", strtotime("-30 days", $todaysDate)) . ') ';
if (strtotime($RO_Date) >= $todaysDate-30 ) :
echo ':CURRENT<br>';
elseif (strtotime($RO_Date) >= $todaysDate-60 ) :
echo ':31-60<br>';
elseif (strtotime($RO_Date) >= $todaysDate - 90 ) :
echo ':61-90<br>';
elseif (strtotime($RO_Date) >= $todaysDate - 120 ) :
echo ':90-120<br>';
else :
echo ':120+<br>';
endif;
输出:
2017-12-20 (1513688400)
2018-01-19 (1516280400)
-30 Days (1969-12-02) :CURRENT
2018-01-03 (1514898000)
2018-01-19 (1516280400)
-30 Days (1969-12-02) :CURRENT
2018-01-05 (1515070800)
2018-01-19 (1516280400)
-30 Days (1969-12-02) :CURRENT
2018-01-12 (1515675600)
2018-01-19 (1516280400)
-30 Days (1969-12-02) :CURRENT
2018-01-18 (1516194000)
2018-01-19 (1516280400)
-30 Days (1969-12-02) :CURRENT
2018-01-18 (1516194000)
2018-01-19 (1516280400)
-30 Days (1969-12-02) :CURRENT
【问题讨论】:
-
这就是为什么您不应该将日期存储为字符串。
标签: php date datetime time strtotime