将mktime()时间戳与今天的日期()进行比较

时间:2015-01-20 13:56:56

标签: php

我正在构建一个PHP日历,我想今天用Bootstrap类info来强调。到目前为止,这是我的代码循环显示日期:

<?php
$timestamp = mktime(0, 0, 0, $current_month, 1, $current_year);
$max_day = date("t", $timestamp);
$this_month = getdate($timestamp);
$start_day = $this_month["wday"];

for ($i = 0; $i < ($max_day + $start_day); $i++) {
    if ($i % 7 == 0) {
        echo "<tr>\n";
    }
    if ($i < $start_day) {
        echo "<td></td>\n";
    } else {
        echo "<td class=\"text-center\" style=\"height:100px;valign:middle\">" . ($i - $start_day + 1) . "</td>\n";
    }
    if ($i % 7 == 6) {
        echo "</tr>\n";
    }
}
?>

我想以某种方式获取今天的日期(date()?)并将其与我for循环中当前使用的日期进行比较,如果他们添加了<td>类比赛。但是,我正在试图弄清楚如何做到这一点。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

为什么不使用strtotime()对它们进行比较?您可以将$ max_day转换为类似这样的时间戳

$unix_max_day = strtotime($max_day);并将其与$timestamp

进行比较

所以例如......

if($unix_max_day < $timestamp){
    echo '$max_day is less than $timestamp';
}

希望这就是你的意思...... :)

答案 1 :(得分:0)

我必须进行三次检查,因为我使用的日期在数组$this_month[]中,一个检查是相同的,一个检查是相同的,然后检查是一样的。

将结果放入变量$td,如下所示:

$td = ((($i - $start_day + 1) == date("j")) && ($this_month["mon"] == date("n")) && ($this_month["year"] == date("Y")) ? "info" : "");

谁知道这是否是最有效的方式。