Преобразование DateTime в String PHP

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

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

Теперь мой вопрос заключается в том, как сделать PHP DateTime Object строкой начиная с такого рода кодов

<?php
$dts = new DateTime(); //this returns the current date time
echo strlen($dts);
?>

Ответ 1

Вы можете использовать метод 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";
}

Ответ 2

Самый простой способ:

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

Надеюсь, это поможет.

Ответ 3

В 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);

Ответ 4

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

Ответ 5

Сработало для меня

$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);

Ответ 6

Более короткий способ использования списка. И вы можете делать то, что хотите, с каждым компонентом даты.

list($day,$month,$year,$hour,$min,$sec) = explode("/",date('d/m/Y/h/i/s'));
echo $month.'/'.$day.'/'.$year.' '.$hour.':'.$min.':'.$sec;