我在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)
。
答案 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_format
或DateTime::createFromFormat
虽然我认为strtotime
也可以,但要确保将日期时间格式和值传递给上面的函数。有关格式的详细信息,请参阅documentation。