我一直在努力为这个问题得到一个确切的答案。有许多接近我想要的东西,但似乎仍然只是关闭。这样做的目的是确保不能在过去的日期进行预订。
我有一个表格,其中包含时间和输入的输入。另一个约会。首先,我不想同时考虑这些输入和输入。将它们转换为时间戳。
此代码不返回任何内容
$time_date = sprintf("%s %s", $pDate, $pTime);
$objDate = DateTime::createFromFormat('H:ia d/m/Y', $time_date);
$stamp = $objDate->getTimestamp();
echo $stamp;
所以我尝试过使用类似的东西
$pDate = $_POST['pDate'];
$pTime = $_POST['pTime'];
$full_date = $pDate . ' ' . $pTime;
$timestamp = strtotime($full_date);
echo $timestamp;
但由于某种原因,它返回了一个不正确的时间戳。 (我一直在使用在线转换器)02/06/2014作为日期&上午12:23作为时间,不是1401625380.根据转换器是Sun,2014年6月1日12:23:00 GMT。 是否有人使用工作代码返回时间和时间的时间戳。日期输入?
其次,我想将此时间戳与指定的时间戳进行比较。检查它是否大于。我用这个
为我的时区创建了一个时间戳$date = new DateTime(null, new DateTimeZone('Pacific/Auckland'));
$cDate = $date->getTimestamp();
echo $cDate;
并且只会有一个if语句,用于比较两个和回声相应的消息。 我觉得好像这里有多个问题 ALMOST 我想要实现的目标,但我无法让它们发挥作用。抱歉附近重复。
注意:我正在使用ajax发布表单数据(如果这可能会干扰)。
答案 0 :(得分:0)
你剪掉的第二段代码是正确的。假设它是日期时间格式(Y-m-d H:i:s)。
From php manual about strtotime():
除非在该参数中指定了时区,否则此函数的每个参数都使用默认时区。
使用date_default_timezone_get()函数检查PHP默认时区。
要比较两个日期,请确保它们都在相同的时区。
对于日期时间输入,我个人使用jQuery UI timepicker插件。
答案 1 :(得分:0)
你收到字符串格式的时间和日期 - 所以我不相信ajax会干扰。 至于你的问题: 首先 - 找出服务器的区域设置时区。你可以通过这个功能来做到这一点:date_default_timezone_get。 如果答案不适合您 - 您可以使用其“姐妹”:date_default_timezone_set,并将其更改为您需要的任何值(如“太平洋/奥克兰” - 请参阅那里的文档)。建议您在完成任务后将其恢复为原始值。
我相信修复您的区域设置时区将解决您的问题。