我的问题:当我结合我的Jquery日期选择器日历输入和我放在它旁边的下拉菜单来捕获小时,分钟和上午/下午时,我无法获得正确的打印日期。
这是我的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
答案 0 :(得分:0)
问题是$truck_arrive_comb
是strtotime()
请看这里strtotime()
答案 1 :(得分: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()
使用字符串创建的输出