Конвертировать DateTime в строковый PHP

Я уже исследовал много сайтов о том, как я могу преобразовать объект PHP DateTime в String. Я всегда вижу & quot; String to DateTime & quot; а не "DateTime to String"

PHP DateTime можно повторить, но я хочу обработать свой DateTime с помощью строковых функций PHP.

У меня вопрос, как я могу сделать PHP DateTime Object в строку, начиная с такого вида кода:

<code>$dts = new DateTime(); //this returns the current date time
echo strlen($dts);
</code>
 mgiuffrida13 мая 2012 г., 05:18
Почему вы хотите обработать ваш DateTime с помощью строковых функций? Что вы пытаетесь достичь?
 NDM16 окт. 2014 г., 15:47
 Mp de la Vega13 мая 2012 г., 05:22
какой-то валидатор даты и времени? в php

Ответы на вопрос(5)

echo date_format($date,"Y/m/d H:i:s");

Есть несколько предопределенных форматов вdate_d.php использовать сformat лайк:

define ('DATE_ATOM', "Y-m-d\TH:i:sP");
define ('DATE_COOKIE', "l, d-M-y H:i:s T");
define ('DATE_ISO8601', "Y-m-d\TH:i:sO");
define ('DATE_RFC822', "D, d M y H:i:s O");
define ('DATE_RFC850', "l, d-M-y H:i:s T");
define ('DATE_RFC1036', "D, d M y H:i:s O");
define ('DATE_RFC1123', "D, d M Y H:i:s O");
define ('DATE_RFC2822', "D, d M Y H:i:s O");
define ('DATE_RFC3339', "Y-m-d\TH:i:sP");
define ('DATE_RSS', "D, d M Y H:i:s O");
define ('DATE_W3C', "Y-m-d\TH:i:sP");

Используйте как это:

$date = new \DateTime();
$string = $date->format(DATE_RFC2822);
 17 нояб. 2016 г., 09:05
Вы можете использовать константу DateTime (например, DateTime :: ISO8601), это облегчает чтение кода.

Самый простой способ, который я нашел, это:

$date   = new DateTime(); //this returns the current date time
$result = $date->format('Y-m-d-H-i-s');
echo $result . "<br>";
$krr    = explode('-', $result);
$result = implode("", $krr);
echo $result;

Я надеюсь, что это помогает.

Это сработало для меня

$start_time   = date_create_from_format('Y-m-d H:i:s', $start_time);
$current_date = new DateTime();
$diff         = $start_time->diff($current_date);
$aa           = (string)$diff->format('%R%a');
echo gettype($aa);
Решение Вопроса

Вы можете использоватьformat методDateTime учебный класс:

$date = new DateTime('2000-01-01');
$result = $date->format('Y-m-d H:i:s');

Еслиformat не получается по какой-то причине, он вернетсяFALSE, В некоторых приложениях может иметь смысл обработать сбойный случай:

if ($result) {
  echo $result;
} else { // format failed
  echo "Unknown Time";
}
 06 апр. 2018 г., 14:20
Вы можете использовать эту более короткую форму$result = (new DateTime('2000-01-01'))->format('Y-m-d H:i:s'); начиная с PHP 5.4. Смотрите здесь:docs.php.net/manual/en/migration54.new-features.php Class member access on instantiation has been added, e.g. (new Foo)->bar().
 19 окт. 2015 г., 10:23
вы забыли часовой пояс, вместо этого используйте$date->format('c') или же$date->format('Y-m-d H:i:s Z') или же$date->format('Y-m-d H:i:s T')
 13 нояб. 2017 г., 23:02
Какой оператор использования вам нужно использовать - & gt; формат? В Zend сказано, что чего-то не хватает
 03 дек. 2012 г., 20:08
Привет @ Watt, хорошая мысль! Я расширил пример, чтобы показать, как может быть обработан сбойный случай.
 03 дек. 2012 г., 19:19
+1 Это работает. Не могли бы вы также рассказать, как проверить на ноль (в той же строке), прежде чем делать это преобразование. Спасибо!

Ваш ответ на вопрос