是否有一个PHP函数以与MySQL函数NOW()相同的格式返回日期和时间?
我知道如何使用date()做到这一点,但是我问是否有一个仅用于此的函数。
例如,返回:
2009-12-01 00:00:00
#1楼
使用此功能:
1function getDatetimeNow() { 2 $tz_object = new DateTimeZone('Brazil/East'); 3 //date_default_timezone_set('Brazil/East'); 4 5 $datetime = new DateTime(); 6 $datetime->setTimezone($tz_object); 7 return $datetime->format('Y\-m\-d\ h:i:s'); 8}
#2楼
使用PHP版本> = 5.4 DateTime可以做到:
echo (new \DateTime())->format('Y-m-d H:i:s');
看到它工作 。
#3楼
我喜欢user1786647发布的解决方案,并对其进行了一些更新,以将时区更改为函数参数,并添加了对传递Unix time或datetime字符串以用于返回的时间戳的可选支持。
它还为运行低于PHP 5.3版本的用户包括“ setTimestamp”的后备:
1function DateStamp($strDateTime = null, $strTimeZone = "Europe/London") { 2 $objTimeZone = new DateTimeZone($strTimeZone); 3 4 $objDateTime = new DateTime(); 5 $objDateTime->setTimezone($objTimeZone); 6 7 if (!empty($strDateTime)) { 8 $fltUnixTime = (is_string($strDateTime)) ? strtotime($strDateTime) : $strDateTime; 9 10 if (method_exists($objDateTime, "setTimestamp")) { 11 $objDateTime->setTimestamp($fltUnixTime); 12 } 13 else { 14 $arrDate = getdate($fltUnixTime); 15 $objDateTime->setDate($arrDate['year'], $arrDate['mon'], $arrDate['mday']); 16 $objDateTime->setTime($arrDate['hours'], $arrDate['minutes'], $arrDate['seconds']); 17 } 18 } 19 return $objDateTime->format("Y-m-d H:i:s"); 20}
#4楼
使用strftime :
strftime("%F %T");
-
%F与%Y-%m-%d。 -
%T与%H:%M:%S。
这是有关ideone 的演示 。
#5楼
除了:
date("Y-m-d H:i:s");