Вход | Регистрация


Подскажите, как боротся с кривостью функции PHP addPeriod?

Подскажите, как боротся с кривостью функции PHP addPeriod?
Я
   megabax
 
03.01.13 - 22:26
Добавляю к дате '2010-01-30 00:00:00' 13 месяцев и addPeriod выдает 2011-03-02 00:00:00, хотя доложна выдавать 2011-02-28 00:00:00
Подскжите плз, как лечить? Может, есть какие то нормальные библиотеки для работы с датой и временем на PHP?
 
 
   zak555
 
1 - 03.01.13 - 22:28
ДобавитьМесяц()
   megabax
 
2 - 03.01.13 - 22:28
1, дык это 1С осовская функция, а не PHP шная
   Wobland
 
3 - 03.01.13 - 22:29
(2) мы в курсе. имхо зак хорошо пошутил
   zak555
 
4 - 03.01.13 - 22:31
function add_month_to_date($date, $m){    
   if (is_numeric($m)){
       while ($m>0){
           $date += cal_days_in_month(CAL_GREGORIAN, strftime("%m",$date), strftime("%G",$date))*24*60*60;        
           $m--;
       }        
   }
   return $date;
}
   zak555
 
5 - 03.01.13 - 22:32
echo date("M-d-Y", mktime(date("H"), date("i"), date("s"), date("m")+1, date("d"), date("Y")));
   Torquader
 
6 - 04.01.13 - 00:20
Нет, а что вы хотите получить ? В феврале нет 30 дней. Поэтому, при прибавлении месяца прибавляют Int(365.25/12) получается более похоже на правду.
   megabax
 
7 - 04.01.13 - 00:23
6, тогда если прибавить месяц к 15 февраля, что доложно получиться, 17 марта что ли?
   megabax
 
8 - 04.01.13 - 00:27
4, поlскжите еще плз, почему не работает strftime('%G',$date)?
Вот такая строка
echo "date: ".$date." strftime('%m',$date)=".strftime("%m",$date)." strftime('%G',$date)=".strftime("%G",$date)."<br>";
выдает результат
date: 2010-01-30 00:00:00 strftime('%m',2010-01-30 00:00:00)=01 strftime('%G',2010-01-30 00:00:00)=

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует