php, date () не возвращает правильную дату / время - PullRequest
3 голосов
/ 14 февраля 2012

код ниже ...

$date = "02-13-2012";
$start_time = "17:30";
$end_time = "20:00";

$start_timestamp = date("m-d-Y H:i",strtotime($date." ".$start_time));
$end_timestamp = date("m-d-Y H:i",strtotime($date." ".$end_time));

print($start_timestamp);
print($end_timestamp);

Returns ...

1969-12-31 19: 30: 00

1969-12-31 20: 30: 00

Кто-нибудь знает, почему это работает неправильно?

Ответы [ 4 ]

2 голосов
/ 14 февраля 2012

02-13-2012 17:30 не является распознанным форматом даты .Либо используйте порядок день-месяц-год или год-месяц-день, либо пользовательский синтаксический анализ формата даты с использованием, например, DateTime::createFromFormat.

0 голосов
/ 14 февраля 2012

Смотрите это. Я думаю, что вы должны изменить формат даты.

$date = "02-13-2012";
$date = str_replace("-","/",$date);
$start_time = "17:30";
$end_time = "20:00";

$start_timestamp = date("m-d-Y H:i",strtotime($date." ".$start_time));
$end_timestamp = date("m-d-Y H:i",strtotime($date." ".$end_time));

print($start_timestamp);
echo "<br/>";
print($end_timestamp);
0 голосов
/ 14 февраля 2012

Когда вы форматируете дату как xx-yy-zzz, strtotime() интерпретирует ее как дату в обычном формате, а не в американском, так что это dd-mm-yyyy.

0 голосов
/ 14 февраля 2012

Ваш формат даты неверен для функции strtotime

либо измените на

 $date = "13-02-2012";

или на другой допустимый формат

...