Есть ли функция PHP, которая возвращает дату и время в том же формате, что и функция MySQL NOW()
?
Я знаю, как это сделать, используя date()
, но я спрашиваю, есть ли функция только для этого.
Например, чтобы вернуть:
2009-12-01 00:00:00
Не кроме date("Ymd H:i:s")
date('Ymd H:i:s')
За дополнительной информацией обращайтесь : http://pl.php.net/manual/en/function.date.php
С версией PHP> = 5.4 DateTime может сделать это: –
echo (new \DateTime())->format('Ymd H:i:s');
Смотрите, как работает .
Используйте эту функцию:
function getDatetimeNow() { $tz_object = new DateTimeZone('Brazil/East'); //date_default_timezone_set('Brazil/East'); $datetime = new DateTime(); $datetime->setTimezone($tz_object); return $datetime->format('Y\-m\-d\ h:i:s'); }
Попробуйте: date("Ymd H:i:s");
Я искал тот же ответ, и я придумал это решение для PHP 5.3 или новее:
$dtz = new DateTimeZone("Europe/Madrid"); //Your timezone $now = new DateTime(date("Ymd"), $dtz); echo $now->format("Ymd H:i:s");
Использовать strftime
:
strftime("%F %T");
%F
совпадает с %Y-%m-%d
.
%T
совпадает с %H:%M:%S
Вот демо на идеоне.
Функция MySQL NOW()
возвращает текущую временную метку. Единственный способ, который я нашел для PHP, – использовать следующий код.
$curr_timestamp = date('Ymd H:i:s');
Я хотел бы добавить один ответ в список ответов. Вы можете использовать date_create()
, который создает объект dateTime. Функция date_create()
поддерживает использование относительного формата в своем параметре, что делает считываемый код. Затем вы можете вернуть свою дату, вызвав метод format()
.
Работает на php 5.2 и выше
Код:
$dateTime = date_create('now')->format('Ymd H:i:s');
Я использую этот подход для своих проектов, если мне нужно заполнить массив. Как это:
$array = array( 'name' => 'John', 'date_time' => date_create('now')->format('Ymd H:i:s') );
Еще один ответ, который я нахожу простым в использовании:
$mysqlDateTime = date('c'); echo $mysqlDateTime; //2015-07-27T00:00:00+02:00
Это дата ISO 8601 (добавлена в PHP 5), которую использует MySQL
Мне нравится решение, отправленное пользователем1786647, я немного его обновил, чтобы изменить часовой пояс на аргумент функции и добавить дополнительную поддержку для передачи строки времени Unix или datetime для использования для возвращаемой даты.
Также включает откат для «setTimestamp» для пользователей с версией ниже PHP 5.3:
function DateStamp($strDateTime = null, $strTimeZone = "Europe/London") { $objTimeZone = new DateTimeZone($strTimeZone); $objDateTime = new DateTime(); $objDateTime->setTimezone($objTimeZone); if (!empty($strDateTime)) { $fltUnixTime = (is_string($strDateTime)) ? strtotime($strDateTime) : $strDateTime; if (method_exists($objDateTime, "setTimestamp")) { $objDateTime->setTimestamp($fltUnixTime); } else { $arrDate = getdate($fltUnixTime); $objDateTime->setDate($arrDate['year'], $arrDate['mon'], $arrDate['mday']); $objDateTime->setTime($arrDate['hours'], $arrDate['minutes'], $arrDate['seconds']); } } return $objDateTime->format("Ymd H:i:s"); }
Вы можете использовать класс simplePHP для этого:
echo $date->now();
Этот класс также предоставляет множество полезных методов для сложения, вычитания и сравнения даты. Вы можете проверить страницу учебников для получения дополнительных примеров.