Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-比较日期_Php_Date_Datetime_Strtotime - Fatal编程技术网

PHP-比较日期

PHP-比较日期,php,date,datetime,strtotime,Php,Date,Datetime,Strtotime,在我的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'

在我的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 {

}
/$book['book\u datetime']已确认2016-08-15 20:38:00
$plusTen=date('Y-m-d H:i:s',strotime($book['book\u datetime'))+36000);
$minusTen=日期('Y-m-d H:i:s',标准时间($book['book\u datetime'))-36000);
如果((strotime($date)>strotime($minusTen))&(strotime($date)
if语句应该为true,但是它不起作用。有人能告诉我为什么吗?

你的

$date = date('Y-m-d H-i', strtotime($myTime));
无法工作,因为您有一个非标准的时间格式

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

$date = $mydt->getTimestamp();
而是像这样使用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;
您的

无法工作,因为您有一个非标准的时间格式

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

$date = $mydt->getTimestamp();
而是像这样使用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;

您有一个输入错误
H-i
应该是
H:i
您也在过度写入
$date
将其设置为DateTime对象后,您继续使用
date(…)
命令???@johnCode抱歉,显示日期的注释中实际上有一个错误。我已经updated@RiggsFolly-对不起,我发布的代码有误。它现在被编辑了…仍然不工作:(这个
$date=date('Y-m-d H-i',strotime($myTime))
无法使用您的时间格式。请坚持使用DateTime类,因为它更灵活、更有用,如果您有输入错误,
H-i
应该是
H:i
您也写得太多了
$date
将其设置为DateTime对象后,您将继续使用
日期(..)将其废弃
command???@johncode抱歉,显示日期的注释中实际上有一个错误。我已经updated@RiggsFolly-抱歉,我发布的代码输入错误。现在已编辑…仍然无法工作:(This
$date=date('Y-m-dh-i',strottime($myTime));
无法使用您的时间格式。请继续使用DateTime类,因为它更灵活、更有用,这会使您工作。我遇到错误:“对非对象调用成员函数getTimestamp()”嗯,您使用的是什么版本的PHP?使用版本5.4.43我遇到错误:“调用成员函数getTimestamp()”在非对象上,您使用的是什么版本的PHP?使用的是版本5.4.43