0

午前 5 時 30 分以降に shiftdate 変数を変更する必要があります。午前 05:31 から翌日の午前 5:30 までの過去 24 時間からデータを生成する必要があるためです。私はこのように試しましたが、毎回前日を与えます。助けてください。

SQL クエリで $shiftdate を使用したい。

コード:

<?php
    if(date('H:i')>="00:00" || date('H:i')<"05:30"){
                      $shiftdate=  date('Y-m-d',strtotime(date('Y-m-d'))-24*60*60);

                  }
                  else if(date('H:i')>"05:30" || date('H:i')<"00:00")
                  {
                      $shiftdate=date('Y-m-d');
                  }

                  echo $shiftdate; 
?>
4

2 に答える 2

0

これにはDateTimeクラスを使用して、チェックを関数にカプセル化できます。

/**
 * @param DateTime $checkTime
 * @return string
 */
function getShiftDate(DateTime $checkTime)
{
    $shiftDate = (new DateTime())->setTimestamp($checkTime->getTimestamp());
    $hours = (int)$checkTime->format('H');
    $minutes = (int)$checkTime->format('i');
    $totalMins = $hours * 60 + $minutes;
    if($totalMins < 330){
        $shiftDate->modify('yesterday');
    }
    return $shiftDate->format('Y-m-d');
}

var_dump(getShiftDate(new DateTime()));

明らかに、日付/時刻を取得する方法がわからないため、関数への入力を変更する必要があるかもしれませんが、それは問題にはなりません。ヘルプが必要な場合は、コメントを投稿してください。

于 2013-06-09T13:44:12.337 に答える