我正在构建一个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" : "");
谁知道这是否是最有效的方法。