#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. Спасибо за это, действительно помогло