Преобразование числовой даты в объект Datetime

#php #date #datetime

#php #Дата #datetime

Вопрос:

Просто интересно, какой наилучший способ преобразовать дату в следующем формате: 02072014 (2 июля 2014) в объект DateTime? Я пробовал:

 $date = DateTime::createFromFormat("jMY", $digits);
 

Но, похоже, это не сработало. Я использую этот формат даты, потому что он вводится с клавиатуры телефона.

Приветствия,

Ewan

Ответ №1:

Определение функции createFromFormat()

 public static DateTime DateTime::createFromFormat ( string $format , string $time [, DateTimeZone $timezone ] )
 

Итак, вам нужно сделать так

 $digits = '02072014';
$date = DateTime::createFromFormat('dmY',$digits);
echo $date->format("j M Y");
 

Установите данные в желаемом формате.

 $date->format("j M Y"); 
 

Ответ №2:

Вы используете неправильные спецификаторы формата. Из документации, j используется для дня без начальных нулей и m для месяца, который указан на английском языке. Кроме того, вы должны передать a DateTimeZone , если не хотите PHP угадывать.

 <?php
$digits = "02072014";
$date = DateTime::createFromFormat("dmY", $digits, new DateTimeZone('UTC'));
echo $date->format('Y-m-d');
?>
 

Ответ №3:

Используйте правильный формат, в котором должна быть переданная строка:

 $date = DateTime::createFromFormat( "dmY", $digits );
 

Комментарии:

1. Спасибо за это, действительно помогло