[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Строка -> Дата
Страницы: 1, 2, 3, 4, 5
MailRes
Ребята, привет!))

Подскажите простой способ превратить значение переменной $a
$a='2015-06-11'


Чтобы значение стало "11.06.15"

Обычно делал такое с помощью explode / implode / preg_replace, но ведь способ проще есть)))

p.s. Замечания типа - сразу пусть в таком формате приходят переменные "хх.хх.хх" - не принимаются)) Т.к. один формат нужен для MySQL, а другой для удобочитаемости :)
Invis1ble
ну например
date('d.m.y', strtotime('2015-06-11'));


_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

Slavok47
а что удобочитаемый формат для MySQL не подходит?
Valick
Slavok47, нет


_____________
Стимулятор ~yoomoney - 41001303250491
Kusss
можно в самом MySQL конвертнуть в нужный формат
DATE_FORMAT('2015-06-11', '%d.%m.%Y') или UNIX_TIMESTAMP('2015-06-11').
а дальше date к нужному виду
AllesKlar
Цитата (Kusss @ 12.06.2015 - 00:15)
можно в самом MySQL конвертнуть в нужный формат
DATE_FORMAT('2015-06-11', '%d.%m.%Y') или UNIX_TIMESTAMP('2015-06-11').
а дальше date к нужному виду

Не нужно этого делать.
Данные, полученные из базы, дальше обрабатываются скриптом.
А работать с датами в стриганх - это вселенское зло.
Завтра ТС захочет к полученной дате прибавить 28 часов, и начнется танец с бубном и explode()
Дата должна быть всегда в ISO
Все остальное - это форматирование перед выводом в темплейт.
В идеале должно быть 2 глобальные функции:
1: конвертация из ISO в национальный формат (вызывается перед выводом в темплейт)
2: конвертация из национального формата в ISO (вызывается сразу, после получения даты из $_POST, $_GET,etc)

_____________
[продано копирайтерам]
MailRes
Пропал на несколько дней))) (выдохные)

Вариант Invis1ble, наверное, самый подходящий (не пробовал, но на вооружение возьму, спс), т.к. немного изменил логику выполнения скрипта, сразу определяю 4 переменных - ужс, а не код :D


$fdate=date("Y-m-d"); // дата текущая в формате MySQL
$sdate=date("Y-m-d", strtotime('today + 1 month')); // текущая дата + 1 месяц в формате MySQL
$efdate=date("d.m.Y"); // дата текущая для удобочитаемости
$esdate=date("d.m.Y", strtotime('today + 1 month')); // дата текущая +1 месяц для удобочитаемости


Вот и использую 2 переменных в запросе MySQL, а другие 2 пемеренных в выводе на страницу.
Плохая реализация? :D
Valick
Цитата (MailRes @ 15.06.2015 - 19:15)
Плохая реализация?

угу
учитесь работать с датами, на уровне MySQL

_____________
Стимулятор ~yoomoney - 41001303250491
AllesKlar
Цитата (MailRes @ 15.06.2015 - 18:15)
Пропал на несколько дней))) (выдохные)

Вариант Invis1ble, наверное, самый подходящий (не пробовал, но на вооружение возьму, спс), т.к. немного изменил логику выполнения скрипта, сразу определяю 4 переменных - ужс, а не код :D


$fdate=date("Y-m-d"); // дата текущая в формате MySQL
$sdate=date("Y-m-d", strtotime('today + 1 month')); // текущая дата + 1 месяц в формате MySQL
$efdate=date("d.m.Y"); // дата текущая для удобочитаемости
$esdate=date("d.m.Y", strtotime('today + 1 month')); // дата текущая +1 месяц для удобочитаемости


Вот и использую 2 переменных в запросе MySQL, а другие 2 пемеренных в выводе на страницу.
Плохая реализация?  :D

ацкий ацтой.

$cur_date = new DateTime();
$next_date = new DateTime();
$next_date->add(new DateInterval('P1M'));

echo $cur_date->format('Y-m-d');
echo '<br>';
echo $cur_date->format('d.m.Y');
echo '<br>';
echo $next_date->format('Y-m-d');
echo '<br>';
echo $next_date->format('d.m.Y');


_____________
[продано копирайтерам]
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.