пятница, 28 декабря 2007 г.

вывод даты в заголовок из параметров GET DittoCal

Задача: сделать вывод даты из параметров GET DottoCal в заголовок, например "Новости за 15 января 2007 года".

Решение: пришло на ум два варианта - преобразовывать номера месяцев из параметров в названия из массива... и более универсальный, преобразовывать дату из параметров в timestamp и потом выводить в нужном формате через strftime. Приведу скрипт сниппета для последнего решения:
<?php
if (isset($_GET[cal_month])) {
if (isset($_GET[cal_day])) {
$date_string = $_GET[cal_year]."-".$_GET[cal_month]."-".$_GET[cal_day]." 00:00:00"; //задана дата полностью
$nix_date = strtotime($date_string);
return "за ".strftime("%d %B, %Y",$nix_date);
} else {
$date_string = $_GET[cal_year]."-".$_GET[cal_month]."-1 00:00:00"; //заданы месяц и год
$nix_date = strtotime($date_string);
return "за ".strftime("%B, %Y",$nix_date);
}
} else {
return "";
}
?>
здесь нам помогает функция strtotime, которая переводит дату из строки в timestamp. Примечание: сниппет следует вызывать некешированным.

2 комментария:

Unknown комментирует...

зависит от настроек locale дистрибутива. Может вывести такую строку - "новости за 15 январь 2007 года"

yentsun комментирует...

2Dmitry: Скорее всего ваш вариант и будет...однако суть статьи не в этом:)