機能していたスクリプトがありますが、うまく機能していますが、適切ではありません。この関数は、2 つの日付/時刻の時差を計算することを想定しています。
最初の日付は現在の日付と時刻 (日付 + 時間:分) で、2 番目の日付はユーザーが選択します。
目的は、現在の日付/時刻がユーザーが選択した日付から 24 時間以内の場合にエラーを表示することです。つまり、今日が 23/20/2012 16:00 で、ユーザーが 24/10/2012 15:00 を選択した場合 (これは 24 時間以内を意味します)、ユーザーが 26/10/2012 19:00 を選択した場合は、24 時間経過しています。
これで問題なく動作しますが、日付が年を変更すると(ユーザーが2012年12月31日以降の日付を選択した場合..24時間以内にまだあると想定されます..そして、これがどのように起こるか非常に困惑しています..間違った?
$dt = $_GET['dt']; $tm = $_GET['tm'];
// Current Date an time (Hrs & Mins)
$date1 = date("Y-m-d H:i");
// Chosen Date/Time
$date2 = date("Y-m-d", strtotime( "$dt" ) );
$diff = strtotime($date2." $tm") + - strtotime($date1);
if($diff/3600 < 24)
echo "0";
else
echo "1";
以下は、呼び出しを行う対応する Ajax です。
function getAjaxTime()
{
xmlHttp=GetXmlHttpObject();
if (xmlHttp==null)
{
alert ("Your browser does not support AJAX!");
return;
}
dt = document.frm.arrival_date.value;
tm = document.frm.arrival_hour.value +':'+document.frm.arrival_min.value;
xmlHttp.open("GET","<?php echo $base_dir;?>/admin/get/timediff.php?dt="+encodeURI(dt)+"&tm="+encodeURI(tm),false);
xmlHttp.send(null);
return xmlHttp.responseText;
}