Nickolay.info. PHP. Скрипт и класс для определения разницы дат

Скрипт определяет разницу двух дат - заданной и сегодняшней. Вывод может делаться в виде текста или картинки, в обеих случаях к скрипту можно обратиться с постоянным URL. В зависимости от настроек, можно вывести следующую информацию:

Так как расчёт делается не "вручную", а на основе метода DateTime::diff, для работы скрипта нужен PHP версии не ниже 5.3, где появился этот метод.

К сожалению, на момент написания статьи в моём PHP 5.3.5 метод DateTime::diff работал с рядом багов:

Всё это я постарался учесть в коде класса datediff.php. Второй файл архива - index.php - форма для вызова класса. Конечная дата, кстати, не обязана быть сегодняшней, установить её можно методом setdate2. Третий файл - шрифт comic.ttf, которым формируются картинки. Всё сделано очень быстро и для себя, если понадобится кому-то ещё - я только рад.

Если Ваш "движок" или сайт не позволяют указывать URL картинки, не оканчивающийся на .jpg или .gif, я не виноват :) Мой позволяет:

Форма ввода данных скрипта datediff

Вот какая получилась картинка:

Вывод скрипта datediff

Вот таким кодом HTML её можно вставить в блог:

<img src="http://ВАШ_URL_СКРИПТА/index.php?d=16-02-2011&t=%CF%F0%EE%F8%EB%EE&r=7&g=1&f=12" alt="">

 Файлы скрипта в архиве ZIP (91 Кб)

Ссылки по теме

 Мой мидлет "Калькулятор дат"

 Разница дат и день недели для даты на Javascript

P.S. Если класс будет работать на хостинге с установленной по умолчанию кодировкой UTF-8 (Юникод), то нужно не только перекодировать в неё файлы index.php и datediff.php, но и убрать преобразование кодов символов функцией str_rus файла datediff.php. Функцию можно переписать так:

private function str_rus ($str){
 return ($str);
}

Также замените в index.php строку

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

на

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

и больше ничего менять не нужно.

Разумеется, часы на сервере должны идти правильно.

А перекодировать из Windows в Юникод и обратно удобней всего с помощью Far 2.0, а именно:

Для тех, кто совсем в танке - слова вроде "клавиши Ctrl+A" означают "при зажатой клавише Ctrl, не отпуская её, нажать клавишу A" :)

Рейтинг@Mail.ru

вверх гостевая; E-mail