Перевод даты в универсальную форму
В базе данных на самописной CMS у одного заказчика даты хранились в оригинальном виде, текстовом. Вот так: «22 апреля 2019», «05 марта 2019» и так далее. Работать с подобными датами не очень просто, поэтому потребовалось привести их к стандартному виду. Зачем? Ну хотя бы затем, чтобы была возможность сортировать их по возрастанию/убыванию стандартными процедурами SQL. По большому счету нам надо только перевести названия месяцев в числа. Давайте разберемся с этим.
На самом деле все очень просто. Создаем два массива:
$mes_name = array ("января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря"); $mes_number = array ("01","02","03","04","05","06","07","08","09","10","11","12");А потом их используем. К примеру, код ниже:
$query ="SELECT old_data FROM `table`"; if ($result = $conn->query($query)) { while ($row = $result->fetch_assoc()){ $old_data = explode(" ", $row['old_data']); $mes_old = $old_data[1]; for ($i=0;$i<12;$i++) { if ($mes_name[$i]==$mes_old) { $mes_new = $mes_number[$i]; break; } $new_data = $old_data[0].".".$mes_new.".".$old_data[2]; echo $new_data; } } }Что он делает? А здесь мы делаем выборку старых дат с символьным кириллическим названием месяцев, а затем в цикле for сравниваем их с массивом $mes_name. При нахождении соответствия выходим из цикла и присваиваем переменной $mes_new двухцифровое значение месяца года.
Также используем функцию explode() для разбиения даты по пробелам – нам требуется только месяц. Ну а в конце выводим $new_data, в которую собираем старую и разделяем точками - с ней можно уже делать все, что угодно. То есть мы преобразовали такую дату «05 марта 2019» вот в такую «05.03.2019».
Дальше уже дату в этой форме можно переводить в timestamp, к примеру:
$new_data = "05.03.2019"; $timestamp = strtotime($new_data); echo $timestamp;Такой код выдаст 1551762000. Вот так просто можно сконвертировать дату. Напоминаю, что вы всегда можете написать мне по поводу работ с PHP или SQL – за относительно небольшие деньги я вам с удовольствием помогу.
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.