比较日期



在我的PHP脚本中,我从我的iOS应用程序中获得一个日期字符串,如下所示:

$myTime     = $app->request()->post('myTime'); // 2016-08-15 20-02
$date = date('Y-m-d H-i', strtotime($myTime));

现在我有了我的iOS应用程序的日期,我想检查我的数据库中的预订/预订,并检查我的iOS应用程序的日期是否在数据库日期的+/- 10小时之间:

// $book['book_datetime'] is confirmed 2016-08-15 20:38:00
$plusTen = date('Y-m-d H:i:s', strtotime($book['book_datetime'])+36000);
$minusTen = date('Y-m-d H:i:s', strtotime($book['book_datetime'])-36000);
if((strtotime($date) > strtotime($minusTen)) && (strtotime($date) < strtotime($plusTen))) {
     //should be true
} else {
}

if语句应该为真,但是它不起作用。有人能告诉我为什么吗?

您的

$date = date('Y-m-d H-i', strtotime($myTime));

不能工作,因为你有一个非标准的时间格式。

使用DateTime类从奇数日期时间格式中获取时间戳。

$myTime = $app->request()->post('myTime'); // 2016-08-15 20-02
$mydt   = DateTime::createFromFormat('Y-m-d H-i', $myTime);
$date = $mydt->getTimestamp();

你的评论:

我在CLI中运行了这段代码,它工作了

<?php
$myTime = '2016-08-15 20-02';
$mydt   = DateTime::createFromFormat('Y-m-d H-i', $myTime);
echo $mydt->getTimestamp() . PHP_EOL;
echo $mydt->format('Y-m-d H:i:s') . PHP_EOL;

如果你得到一个错误,那么也许你的日期时间值从$app->request()->post('myTime');不是在你认为的格式

相关内容

  • 没有找到相关文章

最新更新