как преобразовать строку даты в интервал времени в PHP - PullRequest
1 голос
/ 25 августа 2011

как я могу преобразовать заданную строку даты в интервал времени?Строка даты имеет формат d/m/Y g:i:s A?

Я попробовал следующее, но ничего не возвращает:

$date = ... time format set above ....;
echo strtotime($date); //returns nothing.

Пример даты - 24.08.2011 11:47:09PM

Ответы [ 3 ]

1 голос
/ 25 августа 2011

Если вы используете PHP 5.3 или новее, вы можете использовать DateTime::createFromFormat

Для PHP 5.2 вы можете переформатировать его так, чтобы strtotime() мог справиться со следующим:

$date = '24/08/2011 11:47:09 PM';
$d = substr($date,6,4).substr($date,3,2).substr($date,0,2).substr($date,10);
$ts = strtotime($d); //1314229629
0 голосов
/ 25 августа 2011

Даты в форматах m / d / y или dmy устраняются неоднозначно, если взглянуть на разделитель между различными компонентами: если разделитель является косой чертой (/), то предполагается, что используется американский m / d / y;тогда как если в качестве разделителя используется тире (-) или точка (.), то предполагается, что используется европейский формат dmy.

Чтобы избежать потенциальной двусмысленности, лучше использовать даты ISO 8601 (YYYY-MM-DD)или DateTime :: createFromFormat (), когда это возможно.

http://php.net/manual/en/function.strtotime.php

0 голосов
/ 25 августа 2011

strtotime не приведет к желаемому результату, так как предполагает дату m/d/Y, см. Форматы даты .

Вы можете попытаться заменить / в дате с -, это приведет к общепринятому формату, но будет ошибочным / ошибочным, хотя должно работать, если ваш формат фиксирован:

$new_date = str_replace("/", "-", $string_date);
$timestamp = strtotime($new_date);
...