比较两个日期之间的日期,并在

时间:2016-09-22 11:10:25

标签: php date

我正在尝试找出如何使这个脚本工作?

基本上,如果存储在数据库中的日期与今天的日期之间的差异大于10天,那么链接应为红色,否则它们应为黑色。

<?php
    // Today's date
    $today          = date("d/m/Y"); 

    // The date stored into the DB
    $NewsDate           = date("d/m/Y", strtotime($getInfo['date']));

    // The date stored into the DB + 10 days
    $NewsDatePlus10     = date("d/m/Y", strtotime($NewsDate) + (86400 * 10)); 

    if ($NewsDate <= $NewsDatePlus10) {
        echo    "<span class='list-group-item-heading'><b>". utf8_encode($getInfo['title'])."</b><br /></span>";
        echo    "<span class='list-group-item-text'>". utf8_encode($getInfo['content'])."&nbsp;&nbsp;<small>". date("d/m/Y", $getInfo['date'])."</small></span>";                           
    } else {
        echo    "<span style='color:red;'>";
        echo    "<span class='list-group-item-heading'><b>". utf8_encode($getInfo['title'])."</b><br /></span>";
        echo    "<span class='list-group-item-text'>". utf8_encode($getInfo['content'])."&nbsp;&nbsp;<small>". date("d/m/Y", $getInfo['date'])."</small></span>";
        echo    "</span>";
    } 
?>

在数据库中,日期存储在int(11)中,它现在看起来像这个“1465929874”,你可以想象我没有设计第一部分我只是试图让它做我需要它做的事情。

4 个答案:

答案 0 :(得分:0)

我不确定为什么要将它们转换为d / m / Y格式存储在变量中,当你在任何其他地方没有使用该变量而不是检查时。

你应该能够做到:

//Date stored in database
$NewsDate           = strtotime($getInfo['date']);

// The date stored into the DB + 10 days
$NewsDatePlus10     = strtotime($NewsDate) + (86400 * 10); 

//Now you have a timestamp here.
if ($NewsDate < $NewsDatePlus10) {
      //Code here               
} else {

答案 1 :(得分:0)

不要用文字做数学,你不需要重新发明轮子:

$today = new DateTime();
$NewsDate = new DateTimeImmutable($getInfo['date']);
$NewsDatePlus10 = $NewsDate->modify('+10 days');
if ($NewsDate <= $NewsDatePlus10) {
} else {
}

确保$getInfo['date']采用明确的格式。

答案 2 :(得分:0)

以下是您的完整答案:

 <?php
    $today = new DateTime();
    $NewsDate = date("d/m/Y", strtotime($getInfo['date']));
    $NewsDatePlus10 = $NewsDate->modify('+10 days');

            if ($NewsDate <= $NewsDatePlus10) {
                echo    "<span class='list-group-item-heading'><b>". utf8_encode($getInfo['title'])."</b><br /></span>";
                echo    "<span class='list-group-item-text'>". utf8_encode($getInfo['content'])."&nbsp;&nbsp;<small>". date("d/m/Y", $getInfo['date'])."</small></span>";                           
            } else {
                echo    "<span style='color:red;'>";
                echo    "<span class='list-group-item-heading'><b>". utf8_encode($getInfo['title'])."</b><br /></span>";
                echo    "<span class='list-group-item-text'>". utf8_encode($getInfo['content'])."&nbsp;&nbsp;<small>". date("d/m/Y", $getInfo['date'])."</small></span>";
                echo    "</span>";
            } 
        ?>

但请在检索时检查您的日期格式。

如果要添加日期, 对于例如$NewDate=Date('Y-m-d', strtotime("+3 days"));

为减少日期,例如$NewDate=Date('Y-m-d', strtotime("-3 days"));

答案 3 :(得分:0)

您可以根据需要使用此示例。这将为您提供db date的天数。

$now = time(); // current time 
$your_date = strtotime("15-09-2016"); // db date
$datediff = $now - $your_date;
$no_of_days =  floor($datediff / (60 * 60 * 24));

if($no_of_days > 10){ echo 'red';}
else {  echo 'black';}