0

私の問題: Jquery datepicker カレンダー入力と、その横に配置したドロップダウンを組み合わせて、時間、分、および AM/PM をキャプチャすると、印刷する適切な日付を取得できません。

これが私のphpコードです:

echo protect($_POST['truck_arrive'])." - truck arrive<br>";
echo protect($_POST['truck_arrive_hours'])." - truck arrive hours<br>";
echo protect($_POST['truck_arrive_mins'])." - truck arrive mins<br>";
echo protect($_POST['truck_arrive_ampm'])." - truck arrive ampm<br>";

$truck_arrive_comb = protect($_POST['truck_arrive']).protect($_POST['truck_arrive_hours']).protect($_POST['truck_arrive_mins']).protect($_POST['truck_arrive_ampm']);

echo $truck_arrive_comb." - truck arrive combination<br>";
echo strtotime($truck_arrive_comb)." - truck arrive combination string to time<br>";
echo date("Y-m-d h:i:s",strtotime($truck_arrive_comb))." - truck arrive combination string to time date format<br>";

//$truck_arrive = date("Y-m-d h:i:s",strtotime($truck_arrive_comb));
$truck_arrive = date("Y-m-d h:i:s",strtotime(protect($_POST['truck_arrive'])));
echo $truck_arrive." - truck arrive date format<br>";

そして、これを出力します:

01/16/2013 - truck arrive
01 - truck arrive hours
04 - truck arrive mins
AM - truck arrive ampm
01/16/20130104AM - truck arrive combination
- truck arrive combination string to time
1969-12-31 07:00:00 - truck arrive combination string to time date format
2013-01-16 12:00:00 - truck arrive date format
4

2 に答える 2

0

問題は、それ$truck_arrive_combが無効な形式であることですstrtotime()

こちらをご覧くださいstrtotime()

于 2013-01-20T20:43:06.680 に答える
0

これは使用できるものを単純化したもので、ハードコードされた値を適切な に置き換えるだけです$_POST:

/* hard coded values for test*/
$hours=1;
$minutes=40;
$am_pm='am';

$hours = $am_pm == 'pm' ? $hours +12 : $hours;
$dateTime=strtotime('01/16/2013')  ;/* returns seconds*/

$timeInSeconds= ($minutes * 60) + ($hours*3600);
/* add time in seconds to date in seconds*/
$totalSeconds= $dateTime + $timeInSeconds;

echo date('Y-m-d H:i:s',$totalSeconds );

タイムゾーンを考慮する必要がある場合は、変更する必要があります。

別のアプローチは、時刻と日付の文字列を上記の出力と同じ形式に解析し、それを文字列を使用して作成するstrtotime()出力に渡すか、単に一致させることです。date()

于 2013-01-20T20:46:59.503 に答える