如何转换此日期格式:
2017-12-20 09:26:03
要:
2017-10-05T09:31:00.000Z
我以
格式从 mysql db 获取日期值2017-10-05T09:31:00.000Z
在我的PHP块中,我以格式
获得$ this-> date-> gmtDate()2017-12-20 09:26:03
。在我的查询中,我必须从数据库列 greate r中获取值,而不是当前日期时间。如果某人可以理清如何转换日期格式,我可以从日期列中获取值。
我的查询是:
$date = $this->date->gmtDate();
$collection = $this->collectionFactory->create()
->addFieldToFilter('is_active', 1)
->addFieldToFilter('_end_date', array('gteq' => $date))
答案 0 :(得分:1)
请使用此...
$originalDate = "set your date ...";
$newDate = date("Y-m-d h:i:s", strtotime($originalDate));
答案 1 :(得分:0)
使用SQL函数 DATE_FORMAT ,使用params for SELECT。
请参阅https://www.w3schools.com/sql/func_mysql_date_format.asp
或者将日期作为 datetime 类型存储在数据库中。
答案 2 :(得分:0)
数据库列大于当前日期时间
MySQL了解GMT日期时间:
// Using PDO
$stmt = $db->prepare("SELECT * FROM someTable WHERE dateColumn > ?");
$stmt->execute(array( $this->date->gmtDate() ));
while ($tuple = $stmt->fetch()) {
... do something with the fetched rows
}
然而,在这个的情况下:
我必须从数据库列中获取大于当前日期时间
的值
...你甚至根本不需要PHP,因为在NOW()
函数的MySQL中可以使用“当前日期时间”:
SELECT * FROM someTable WHERE dateColumn > NOW()
答案 3 :(得分:0)
Z
基于时区UTC
,并在ISO-8601中定义,您需要。
在转换为实际格式之前,您需要转换为UTC:
$date = new DateTime();
$date->setTimeZone(new DateTimeZone('UTC'));
echo $date->format('Y-m-d\TH-i-s.\0\0\0\Z');
然后你可以比较上面的格式字符串。