在php中使用unix时间填充日历

din*_*o_d 5 php unix calendar

我正在创建一个每周工作的表日历.日历看起来像这样

在此输入图像描述

我使用我在这里找到的代码来设置标题日期.我的代码看起来像这样:

$dt = new DateTime;
$dt->setISODate($dt->format('o'), $dt->format('W'));
$year = $dt->format('o');
$week = $dt->format('W');
$current_time = time(); 

$return .= '<table class="reservation_time_table">
                <tr><th>'.esc_html__('Hours', 'time_reservation').'</th>';
do {
    $return .= '<th>' . $dt->format('l') . '<br>' . $dt->format('d M Y') . '</th>';
    $dt->modify('+1 day');
} while ($week == $dt->format('W'));
$return .= '</tr>';
for ($hour=8; $hour < 23 ; $hour++) {
    $return .= '<tr>';
        $return .= '<th>'.$hour.':00</th>';
        for ($i=0; $i <7 ; $i++) {
            $return .= '<td data-reservation_time=""></td>';
        }
    $return .= '</tr>';
}

$return .= '</table>';
Run Code Online (Sandbox Code Playgroud)

现在,我需要data-reservation_timeUnix格式中输入该格式的日期(这就是为什么有$current_time变量).因此,例如在8:00的星期五20的单元格中,应该1448006400在该单元格中.我稍后会用它来存储在数据库中.

但是我该怎么做?我陷入了困境.任何帮助表示赞赏.

编辑

找到了答案.它在下面:)

din*_*o_d 0

好吧,答案比我想象的要简单。好吧,我仍然不能 100% 确定第一部分绝对正确,但它应该是(按照我的逻辑)。

首先,创建本周的日期数组(感谢这个答案

$today = time();

if (date('D', $today) === 'Mon') {
    $timestamp = strtotime('this Monday');
} else{
    $timestamp = strtotime('last Monday');
}
$days = array();
$dates = array();
for ($i = 0; $i < 7; $i++) {
    $days[] = strftime('%A <br /> %d %b %Y', $timestamp);
    $dates[] = strftime('%d %b %Y', $timestamp);
    $timestamp = strtotime('+1 day', $timestamp);
}
Run Code Online (Sandbox Code Playgroud)

第一个if else循环是检查今天是否是星期一,以便您在下星期日(同一周)填充数组。如果是星期二,则时间戳参考是上星期一。

然后就做一个foreach

$return .= '<table class="reservation_time_table">
                <tr><th>'.esc_html__('Hours', 'time_reservation').'</th>';
    foreach ($days as $day => $day_value) {
        $return .= '<th>'.$day_value.'</th>';
    }
    $return .= '</tr>';
    for ($hour=8; $hour < 23 ; $hour++) {
    $return .= '<tr>';
        $return .= '<th>'.$hour.':00</th>';
    foreach ($dates as $date => $date_value) {
        $full_hour = $hour. ':00';
        $return .= '<td data-time="'.strtotime($date_value. ' ' .$full_hour).'"></td>';
    }
    $return .= '</tr>';
    }
$return .= '</table>';
Run Code Online (Sandbox Code Playgroud)

我的日期和时间都在data-time,jquery 抓取已经成熟了:D