2015-10-03 5 views
0

При преобразовании формата даты из mm-dd-yy hh: ii: ss в yy-mm-dd hh: ii: ss format, используя код ниже.Функция даты в PHP Не работает должным образом

<?php 
echo $start_date = date("Y-m-d H:i:s",strtotime("10-14-2015 00:00:00")); 
?> 

Но результат

1970-01-01 05:30:00

Если это не правильный способ использовать дату, предоставить мне альтернативный путь

+0

'd-m-y' ->' 10-14-2015' Где я живу, у нас нет 14 месяцев. (См. Http://stackoverflow.com/q/2167916/3933332) – Rizier123

+0

10-14-2015 00:00:00 находится в формате mm-dd-yy –

+0

mm-dd-yy отсутствует в списке поддерживаемых strtotime форматы: http://php.net/manual/en/class.datetime.php – Pieter21

ответ

3

Первая проверка this ответ Что разница между датами здесь и просто использовать str_replace вроде как

echo $start_date = date("Y-m-d H:i:s",strtotime(str_replace("-","/","10-14-2015 00:00:00"))); 

Или вы можете также использовать DateTime::createFromFormat над вроде как

$date = DateTime::createFromFormat("m-d-Y H:i:s","10-14-2015 00:00:00"); 
echo $date->format('Y-m-d'); 

Demo

+0

Спасибо! за ваш ответ. –

+0

Добро пожаловать. Рад, что это тебе помогло. –

1

Прочитайте руководство: http://php.net/manual/en/function.strtotime.php , а также укажите свою версию PHP.

Она имеет хороший пример на проверку, если преобразование StrToTime был преуспевающим:

if (($timestamp = strtotime($str)) === false) { 

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

Таким образом, вы должны выбрать формат, который будет поддерживать из следующего списка: http://php.net/manual/en/class.datetime.php

обязательно создать культурно знают кода (например, US/UK/... формат)

1

Пожалуйста напишите ваш код, как показано ниже: echo $start_date = date("Y-m-d H:i:s",strtotime("10/14/2015 00:00:00"));

Смежные вопросы