2013-08-13 5 views
2

Вот этот форматИзменение формата DATETIME в PHP

'd-m-Y H:i:s'(15-11-2008 7:16:09) 

Я хочу изменить этот формат

'Y-m-d H:i:s' (2008-11-15 07:16:09) 

Попробованная функцию StrToTime(), но она принимает «т», как ' d 'и' d 'as' m ' Помощь! новый РНР ..

Текущий code`

$dt = strtotime($this->input->post('insert_dts')); 
$formated_date_time = date("Y-m-d H:i:s",$dt);` 
+1

Если вы уже знаете, формат даты, нет необходимости использовать strtotime - вместо этого используйте функцию, например [DateTime :: createFromFormat/date_create_from_format] (http://www.php.net/manual/en/datetime.createfromformat.php), чтобы проанализировать существующую дату. –

ответ

0

В соответствии с вашим кодом:

$dt = strtotime('15-11-2008 7:16:09'); 
echo $formated_date_time = date("Y-m-d H:i:s",$dt); 

Выход:

2008-11-15 07:16:09

+0

, если это был формат '15/11/2008 7:16:09 'его не работает !!! –

+0

Это не допустимый формат даты. – som

+0

@SobinAugustine Вы можете сделать так: 'str_replace ('/', '-', yourdatevariable)' – som

0

Попробуйте

$str = date('d-m-Y H:i:s',strtotime('15-11-2008 7:16:09')); 
echo date('Y-m-d H:i:s',strtotime($str)); 
0

Я использую эти два метода в моем базовом классе (ы) все время ...

protected static function Now() { 
    return date_create(date('Y-m-d H:i:s')) ; 
} 

protected static function NowStr() { 
    return date_format(self::Now(), "Y-m-d H:i:s");  
} 

Дайте мне знать, если это поможет вам :-)

+0

Функция Now() может быть легко возвращена новой DateTime; '. И функция NowStr() легко может быть 'return self :: Now() -> format ('Ymd H: i: s');' –

+0

@ Glavić: Да, вы, вероятно, правы, но как это изменит/улучшит функциональность? – Locohost

+0

Это было просто мое скромное мнение, мне нравится объектно-ориентированный стиль более чем процедурный. Примеры почти одинаковы, но ваша функция 'Now()' не будет работать после 2038 года (19 января 2038 03:14:07 GMT) из-за использования функции 'date()'. Если вы посмотрите на конструктор DateTime (http://www.php.net/manual/en/datetime.construct.php), вы увидите, что первый параметр имеет значение по умолчанию «now», поэтому, если вам нужно текущее время, просто вызовите функцию без параметров, например 'return date_create();' –

1

Как @middaparka сказал в комментарии, пожалуйста, используйте DateTime::createFromFormat.

$date = DateTime::createFromFormat('d-m-Y H:i:s', '15-11-2008 7:16:09'); 
echo $date->format('Y-m-d H:i:s'); // output is: 2008-11-15 07:16:09 
Смежные вопросы