|
|
|
| Задача такая - при имеющейся дате, необходимо определить дату, которая отстоит от исходной на определенное количество месяцев средставами PHP или MYSQL. Решение "в лоб" умножить количество на 30 не подходит :-). | |
|
|
|
|
|
|
|
для: 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;
?> | |
|
|
|
|
|
|
|
для: duran
(04.05.2005 в 08:22)
| | Нужна именно дата или разница в днях? Если требуется дата, то можно вычесть(прибавить) временной интервал, MySQL корректно подсчитает дату, например
SELECT NOW() + INTERVAL 12 MONTH
|
выдаст дату, на год больше, чем текущая, а
SELECT NOW() + INTERVAL 100 DAY
|
возвратит дату, которая была ровно 100 дней назад. | |
|
|
|
|
|
|
|
для: cheops
(04.05.2005 в 23:16)
| | В принципе, нужно знать дату, отстоящую от указанной на опред. количество месяцев и количество дней (до или после) полученной даты :-).
Ваш рецепт №1 начисто решает 1-ю задачу ... Синтаксис правда не совсем понятен. Попробую поэксперементировать с оператором INTERVAL и MONTH.
Задача №2 возможно решается подобным образом, если удастся получить количество дней в этих 6 месяцах, которое естественно, зависят от отсчитываемой даты. Можно ли определить количество дней между 2-мя датами ? | |
|
|
|
|
|
|
|
для: 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 | |
|
|
|