php比较日期变化的日期

Mau*_*wer 8 php comparison date datetime-comparison

我已经在SO上发现了数百个关于主题的问题和答案,但是,没有一个与我的需求具体相符而且我很难过.

我有一个ymd格式的变量,我需要查看它是否是在前一个日历日创建的(不是之前的24小时,而是在前一个日历日).

即.$ tDate = '12 -05-2';

如果对象创建于2012年5月2日晚上11:59(存储时间),我需要与2012年5月3日上午12:01(当前时间)进行比较,以等于true.

如果对象创建于2012年5月2日晚上11:51(存储时间),我需要比较2012年5月2日晚上11:58(当前时间)等于false.

我知道如果这些存储在MySQL数据库中并从一个字段中提取,MySQL可以很容易地解决这个问题.但是,在这种情况下,该解决方案不是一种选择.

这种比较必须完全在php中完成.

我知道这是一个古怪的问题,但是,嘿,这就是StackOverflow的大师擅长的!期待看到回复!

UPDATE

把它想象成:

    $dTest = '12-05-02';
    $dTest = explode('-',$dTest);
    $dTest2 = date('y-m-d');
    $dTest2 = explode('-',$dTest2);

    if ($dTest[2]<$dTest2[2]){
        echo '<br />Posted Yesterday<br />';
    } else {
        echo '<br />Posted Today<br />';
    }
Run Code Online (Sandbox Code Playgroud)

有更有效的解决方案吗?似乎工作,但我认为必须有一个更优化/优雅的解决方案?

解决了

$tHolder = '12-05-12';
$voteDate = date("y-m-d", strtotime($tHolder));
$today = date("y-m-d", strtotime("today"));

if ($voteDate === $today)
{
   echo "this was today's post";
}
elseif ($voteDate < $today)
{
   echo "this was previous to today";
}
Run Code Online (Sandbox Code Playgroud)

Lau*_*nce 8

首先 - 我不认为你的"解决方案"有效.当今天的日期是12-06-01并且帖子是在12-05-31时会发生什么 - 它会给出错误的答案,因为"31">"1"

无论如何 - 我认为正确的答案是:

$yesterday =date("y-m-d", strtotime("yesterday"));
$today = date("y-m-d", strtotime("today"));


if ($yesterday === $tDate)
{
   echo "this was yesterdays post";
}
elseif ($today === $tDate)
{
   echo "this was todays post";
}
else
{
    echo "this was NOT yesterday or today":
}
Run Code Online (Sandbox Code Playgroud)