Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: 12 месяцев - а сколько это в днях ?
 
 автор: duran   (04.05.2005 в 08:22)   письмо автору
 
 

Задача такая - при имеющейся дате, необходимо определить дату, которая отстоит от исходной на определенное количество месяцев средставами PHP или MYSQL. Решение "в лоб" умножить количество на 30 не подходит :-).

   
 
 автор: Flash5   (04.05.2005 в 14:25)   письмо автору
 
   для: duran   (04.05.2005 в 08:22)
 

<?php
//sikhodnaia data
$string = '25.11.2003';
//kolichestvo mesacev dobavit
$count = 3;
$pattern = '/(\w+).(\w+).(\w+)/i';
preg_match($pattern, $string, $data);

$month = $data[2] + $count;
$year = $data[3];
//esli mesac perekhodit v sleduiushi god
if ($month>12) {
$month -= 11;
$year += 1;
}
echo $data[1].".".$month.".".$year;
?>

   
 
 автор: cheops   (04.05.2005 в 23:16)   письмо автору
 
   для: duran   (04.05.2005 в 08:22)
 

Нужна именно дата или разница в днях? Если требуется дата, то можно вычесть(прибавить) временной интервал, MySQL корректно подсчитает дату, например
SELECT NOW() + INTERVAL 12 MONTH

выдаст дату, на год больше, чем текущая, а
SELECT NOW() + INTERVAL 100 DAY

возвратит дату, которая была ровно 100 дней назад.

   
 
 автор: duran   (05.05.2005 в 13:50)   письмо автору
 
   для: cheops   (04.05.2005 в 23:16)
 

В принципе, нужно знать дату, отстоящую от указанной на опред. количество месяцев и количество дней (до или после) полученной даты :-).
Ваш рецепт №1 начисто решает 1-ю задачу ... Синтаксис правда не совсем понятен. Попробую поэксперементировать с оператором INTERVAL и MONTH.
Задача №2 возможно решается подобным образом, если удастся получить количество дней в этих 6 месяцах, которое естественно, зависят от отсчитываемой даты. Можно ли определить количество дней между 2-мя датами ?

   
 
 автор: cheops   (05.05.2005 в 19:04)   письмо автору
 
   для: duran   (05.05.2005 в 13:50)
 

>Ваш рецепт №1 начисто решает 1-ю задачу ... Синтаксис правда
>не совсем понятен.
Это синтаксис функции ADD_DATE - это просто сокращённая и более удобная её запись. Из даты нужно вычесть временной интервал (INTERVAL) затем указать сколько единиц (12) и единицы измерения (MONTH).

>Задача №2 возможно решается подобным образом, если удастся
>получить количество дней в этих 6 месяцах, которое
>естественно, зависят от отсчитываемой даты. Можно ли
>определить количество дней между 2-мя датами ?
Как подсчтитать разницу между двумя датами описывается в теме по ссылке http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=3122

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования