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


Comparing an mktime() timestamp with today's date()

我正在构建一个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>添加一个类。但是,我正在挠头,试图弄清楚如何做到这一点。任何帮助将不胜感激。

你为什么不使用strtotime()来比较它们呢?您可以将 $max_day 转换为类似的时间戳,如下所示

$unix_max_day = strtotime($max_day);并将其与$timestamp进行比较

所以例如...

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

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

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

将我的结果放入变量中$td如下所示:

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

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