2015-11-19 1 views
5

私は週単位で動作するテーブルカレンダーを作成しています。カレンダーは、私は私が私のヘッダの日付を設定するにはhereを発見したコードを使用し、このPHPでunix時間でカレンダーを埋めてください

enter image description here

のように見えます。私が持っているコードは次のようになります。今

$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>'; 

、私はそのセルのUnix形式($current_time変数がある理由です)、私の中でdata-reservation_time日付で配置する必要があります。例えば、金曜日の金曜日の8時には、そのセルに1448006400があるはずです。これを後でデータベースに格納するために使用します。

しかし、どうすればいいですか?私はこの時点で立ち往生しています。どんな助けもありがとうございます。

EDITは答えを見つけました。

<?php 
$date = date("d M Y"); 
$time = "15:00"; 
$unixTime = strtotime($date . " " . $time); 
?> 

答えて

0

わかりましたので、答えは私が思ったよりも簡単でした。まあ、私はまだ最初の部分が絶対に正しいことを100%確信していませんが、それは(私の論理によって)すべきです。

まず、今週の日付の配列を作成(this answerのcurtesy)

$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); 
} 

最初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>'; 

を行うと、時間との私の日付は、data-timeにつかむjqueryのために熟している:D

0

:)以下ですループから。

+0

は、私は私ができる知っているが、私は、日付と時刻を表示する必要があります各セルの表 –

0

ような何か:

$return .= '<td data-reservation_time="' . strtotime($dt->format("Y-m-d") . " " . $hour . ":00:00") . '"></td>'; 

タイムスタンプを取得するためには、あなたの$dtオブジェクトから日を取得し、時間それはあなたがのstrtotimeを使ってunixtimstampを得ることができます

+0

これは上記の表の週の代わりに来週に戻ってきました。私はすでにそれを試しました:\ –

関連する問題