PHP-比较日期
在我的PHP脚本中,我从iOS应用程序中获得一个日期字符串,如下所示: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'
$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