Дата конвертации в этот формат - PullRequest
7 голосов
/ 01 марта 2010

У меня есть дата в этом формате:

   24-12-2010 // DAY - MONTH - YEAR

Мне нужно получить его в следующем формате:

   1995-12-31T23:59:59.999Z // The Z is for the TimeZone I think.

Проверьте эту ссылку:

http://lucene.apache.org/solr/api/org/apache/solr/schema/DateField.html

Приведенная выше ссылка - это то, как мне нужна дата.

Я сейчас использую PHP, так что это должно быть с PHP. Как мне проще всего конвертировать эти даты?

Спасибо

Ответы [ 5 ]

11 голосов
/ 01 марта 2010

Это дата формата ISO8601; Вы хотите следующее.

gmdate('Y-m-d\TH:i:s\Z', strtotime($date_value));
6 голосов
/ 12 июля 2014

Вы можете сделать что-то подобное:

$dateTime = new DateTime($myDate);
$formatted = $dateTime->format("Y-m-d\TH:i:s.z\Z");

Упомянутое решение с:

$dateTime->format(DateTime::W3C);
$dateTime->format(DateTime::ISO8601);

возвращает строки вроде:

2012-11-28T17:21:11+0100

, который не может быть проанализирован, по крайней мере, в более новых версиях Solr.

Я бы не использовал gmdate, если вам нужна поддержка часовых поясов. Реализация DateTime хорошо сделана, а также доступна для функционального программирования.

2 голосов
/ 01 марта 2010

Вы можете использовать DateTime class

$dateTime = new DateTime();
$dateTime.setDate(24, 12, 2010);

$output = $dateTime.format(DateTime::W3C);

// Output now is your date in W3C format.
0 голосов
/ 01 марта 2010
$date = strtotime('24-12-2010');
$new_date = gmDate("Y-m-d\TH:i:s.z\Z",$date); 
0 голосов
/ 01 марта 2010

используйте функцию даты (строка $ format [, int $ timestamp]) функции php! Во втором параметре используйте http://php.net/manual/en/function.strtotime.php, чтобы получить метку времени из строк

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...