我已经使用PHP几个月了,刚刚开始自学ajax。我的第一个项目是通过jQuery将PHP表单中的变量发送到另一个充当操作的PHP。我想找到两个日期和时间之间的差异,并将大量计算的回显响应返回到PHP表单页面。好消息是,ajax可以按预期工作并在表单页面上显示计算结果,但前提是我使用硬编码日期时间($ start)开始计算。如果我尝试使用表单页面中的变量来格式化日期($ start),则ajax不会返回任何内容。如果已经回答了这个问题,请直接把我带到那个地方。
$TravelYear = $_POST['TravelYear'];
$TravelMonth = $_POST['TravelMonth'];
$TravelDate = $_POST['TravelDate'];
$TravelHour = $_POST['TravelHour'];
$TimeZone = $_POST['TimeZone'];
date_default_timezone_set($TimeZone);
// this does not work
$start = date('Y-m-d G:i:s',strtotime($TravelYear.'-'.$TravelMonth.'-'.$TravelDate.' '.$TravelHour.":00:00"));
// this works
$start = date_create('2015-07-10 14:30:00');
$end = date_create(); // Current time and date
$diff = date_diff( $start, $end ); // Find the difference
// lots of calculations
答案 0 :(得分:2)
问题是date_diff
期望使用datetime对象而不是日期字符串。
根据文档,date_diff是DateTime::diff()
使用:
$start = date_create($TravelYear.'-'.$TravelMonth.'-'.$TravelDate.' '.$TravelHour.':00:00');