У меня есть файл XML
. Я разбору синтаксического анализа, а затем вставляю его в свою базу данных, используя PHP
. Однако узлы даты находятся в странном формате XML
, который, как я полагал, составляет миллисекунду. Мои попытки преобразовать это пока не увенчались успехом, и я надеялся, что кто-то может указать на мою ошибку.php - convert xml (миллисекунды?) На читаемую дату
XML
<est__start>1335744000000</est__start>
<est__end>1342742400000</est__end>
Что было это намного более читаемым дата перед преобразованием
<est__start> 04-30-2012 </est__start>
<est__end> 07-20-2012 </est__end>
PHP
$start = $data->est__start;
if (empty($start)) {
$start = '';
} else {
$start = intval($start);
$seconds = $start/1000;
$start = date("d-m-Y", $seconds);
}
$end = $data->est__start;
if (empty($end)) {
$end = '';
} else {
$end = intval($end);
$seconds = $end/1000;
$end = date("d-m-Y", $end);
}
Конечный результат, однако, всегда что-то simil ar to this
25-01-1970
и мне нужно, чтобы оно выглядело так, как перед конверсией. Как это
04-30-2012
Поскольку я не обрабатываю исходное преобразование даты, когда он идет в файл XML, я не знаю, где я буду неправильно. Любая помощь приветствуется.
Я * догадка * быстро, что 'intval' стоит на вашем пути. 'echo PHP_INT_MAX;' узнать, что система, которую вы используете, предлагает вам. Он будет закрывать секунды до 32 бит, подписанных макс. – hakre
@hakre Хотя вопрос связан с преобразованием временных меток Unix, проблема OP связана с тем, как он написал код и конечный размер целых чисел. Это хороший вопрос. –
Да, я быстро с обманом, вам нужно использовать поплавки, а не кастинг. Я также поместил это в свой ответ http://stackoverflow.com/a/18367563/367456, и это стандартный способ справиться с ним 32-битная система в PHP. Точность должна быть в порядке для этих случаев, иначе это потребует bcmath или gmp. – hakre