检查日期/时间是否小于提供的日期?

时间:2014-12-17 04:07:38

标签: php mysql datetime strtotime

我在PHP中实现以下功能,并将此字符串存储在数据库中,用于" created_at"专栏:Wed, 17 Dec 2014 14:53:02 +1100

$created_at = date('r', $insta['created_time']);

现在我只想在$created_at超过特定日期时才进行插入,例如:

if ($created_at > "Wed, 15 Dec 2014 00:00:00 +1100") { //insert in to db }

但这并不奏效。我通常使用strtotime()但不确定在以该格式设置数据时如何处理它。此外,列类型为varchar(255)

4 个答案:

答案 0 :(得分:3)

除了您的问题,您需要将日期时间数据存储在日期时间列中。由于这个原因,Mysql具有特定的功能和格式。但是,为了存储它需要是Y-m-d H:i:s格式。这样做可以为您节省大量的麻烦。

关于您的问题,如果您使用的是PHP 5.2 +版,则可以使用PHP的DateTime类。

$compareTime = new DateTime('2014-12-15 00:00:00'); //new datetime object//
$createdTime = new DateTime($created_at); //converts db into datetime object//

if ($createdTime > $comparedTime) { ..insert into DB.. }; //compare them//

答案 1 :(得分:0)

为什么要在数据库中存储WED ..只需存储日期与php函数日期(" Y-m-d H:i:s"),表字段类型为日期..

这样mysql会自动给你设施来比较两个日期。您只需使用if else语句来比较两个日期。

答案 2 :(得分:0)

使用strtotime()

$created_at = strtotime($insta['created_time']);
$checkdate = strtotime(date('Y-m-d H:i:s')); //here we have to insert check date
if($created_at > $checkdate){ 

}

答案 3 :(得分:0)

for PHP version> = 5.3

使用date_create_from_formatDateTime::createFromFormat

虽然我认为strtotime也可以,但要确保将日期时间格式和值传递给上面的函数。有关格式的详细信息,请参阅documentation