Владимир55
27.02.2017 - 17:08
Дата в ситемап имеет формат
2016-10-19T18:51:53+03:00
Я разбираю её с помощью функций strpos и substr, что бы привести в состояние
час / минута / секунда / месяц / день / год, что бы передать в mktime.
Это работает, но слишком громоздко.
Нельзя ли эту задачу решить регулярным выражением?
T1grOK
27.02.2017 - 17:20
Можно взять DateTime и не мучить ни себя, ни регулярные выражения
_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
Владимир55
27.02.2017 - 17:27
С DateTime я с самого утра бьюсь, но не справился (нужно решение на процедурном РНР).
$time = strtotime('2016-10-19T18:51:53+03:00');
echo date('d.m.Y H:i:s', $time);
Владимир55
27.02.2017 - 17:39
Спасибо!
А я как-то все очень сложно пытался сделать...
AllesKlar
27.02.2017 - 22:13
Цитата (Kusss @ 27.02.2017 - 15:29) |
<pre class="sh_sourceCode" rel="php"><span class="sh_variable">$time</span> <span class="sh_symbol">=</span> <span class="sh_function">strtotime</span><span class="sh_symbol">(</span><span class="sh_string">'2016-10-19T18:51:53+03:00'</span><span class="sh_symbol">);</span> <span class="sh_comment">// 1476892313</span> <span class="sh_function">echo date</span><span class="sh_symbol">(</span><span class="sh_string">'d.m.Y H:i:s'</span><span class="sh_symbol">,</span> <span class="sh_variable">$time</span><span class="sh_symbol">);</span> <span class="sh_comment">// 19.10.2016 08:51:53</span> </pre> |
Не правильно.
У меня твой скрипт выдал 19.10.2016 17:51:53
В чем же дело?
Может лучше DateTime? Его же люди писали, мучались, а вы вот так вот даты, да в стринги, да еще регулярками...
Цитата (Владимир55 @ 27.02.2017 - 15:27) |
С DateTime я с самого утра бьюсь, но не справился (нужно решение на процедурном РНР). |
Показывай, чего ты там вымучал с DateTime
_____________
[продано копирайтерам]
Владимир55
28.02.2017 - 08:56
Цитата (AllesKlar @ 27.02.2017 - 18:13) |
Показывай, чего ты там вымучал с DateTime |
Да уже нечего показать - стер файл с макетом...
killer8080
1.03.2017 - 01:51
Цитата (AllesKlar @ 27.02.2017 - 22:13) |
Не правильно.
|
всё правильно
Цитата (AllesKlar @ 27.02.2017 - 22:13) |
Может лучше DateTime? |
чем лучше? В контексте вопроса, нужно просто получить timestamp из строковой даты, strtotime() здесь достаточно.
AllesKlar
1.03.2017 - 21:57
Цитата (killer8080 @ 28.02.2017 - 23:51) |
всё правильно |
Что правильно-то?
Входные данные: строка 2016-10-19T18:51:53+03:00
Пропускаем через скрипт, у меня на выходе 19.10.2016 17:51:53 , у тебя вообще другое значение будет (о чем я мягко намекнул Владимир55)
Timestamp будет един на любых машинах, а вот обратное преобразование (год, месяц, день, час, минуты, секунды) будут зависить от конкретной локали.
В исходной строке четко прописана временная зона +03, и это значение будет потеряно.
Цитата (killer8080 @ 28.02.2017 - 23:51) |
чем лучше? В контексте вопроса, нужно просто получить timestamp из строковой даты, strtotime() здесь достаточно. |
Ему нужно отдельные значения год, месяц и т.д.
Как дальше? Т.е. на выходе должно быть строки:
2016
10
19
18
51
53
_____________
[продано копирайтерам]
killer8080
1.03.2017 - 23:09
Цитата (AllesKlar @ 1.03.2017 - 21:57) |
Timestamp будет един на любых машинах, а вот обратное преобразование (год, месяц, день, час, минуты, секунды) будут зависить от конкретной локали. |
само собой
Цитата (AllesKlar @ 1.03.2017 - 21:57) |
В исходной строке четко прописана временная зона +03, и это значение будет потеряно. |
ну раз он преобразует дату/время в абсолютный формат, значит информация о часовом поясе ему не нужна.
Цитата (AllesKlar @ 1.03.2017 - 21:57) |
Ему нужно отдельные значения год, месяц и т.д. Как дальше? Т.е. на выходе должно быть строки: 2016 10 19 18 51 53 |
нет, они ему не нужны, вопрос звучал так
Цитата (Владимир55 @ 27.02.2017 - 17:08) |
Как сделать дату, пригодную для работы с mktime? |
т.е эти строки были нужны, только для передачи их аргументами в mktime, что бы на выходе получить timestamp. Для достижения этой цели они не нужны, ТС выбрал не правильный путь решения задачи. Собственно Kusss ему продемонстрировал самое оптимальное решение. Конкретно для этой цели strtotime более чем достаточно.
AllesKlar
2.03.2017 - 00:02
killer8080Ты в суппорте работаешь, чтоле? Откуда ты столько подробностей знаешь, о которых, возможно, ТС еще даже подумать не успел
_____________
[продано копирайтерам]
killer8080
2.03.2017 - 21:49
Цитата (AllesKlar @ 2.03.2017 - 00:02) |
Ты в суппорте работаешь, чтоле? Откуда ты столько подробностей знаешь, о которых, возможно, ТС еще даже подумать не успел |
просто прочитал вопрос
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.