WTF? даты и февраль

Pigmeich

Новичок
dark-demon
не, ну все-таки как определять?

От этого абстракция зависит - либо у нас время отдельно от даты и не меняется, либо вместе и изменяется.
 

WP

^_^
Всё просто как дважды два. strtotime работает очень просто при обработке '+1 month': берет текущую дату (т.к. не указана отправная точка), прибавляет 1 к месяцу, считает timestamp который получился и возвращает, а date уже усматривает в этом 1 марта т.к. 30 февраля нету. timestamp-то одинаковый что у 1 марта , что у мнимого 30 февраля.

-~{}~ 01.02.08 04:40:

p.s. Я думаю это надо исправить, т.к. когда мы говорим +1 month мы поразумеваем не какой-то абстрактный месяц, а следующий. Т.е. сдвижка на кол-во дней в следующем месяце. 1 января -> 1 февраля, 30 января -> 29 февраля. Т.е. в конечной дате до конца месяца должно оставаться такое же кол-во секунд как и в текущем.
 

С.

Продвинутый новичок
Один час это сколько? Ну в зависимости, какой час: академический - 45 минут, астрономический - 60,ХХХХ минут.

А один месяц это сколько? Что нам говорит ISO 8601:

Month - unit of time of 28, 29, 30 or 31 days.
In certain applications a month is regarded as a unit of time of 30 days.

Совсем не редко на практике, когда говорится "1 месяц", то калькуляции идут на базе 30 дней. Не больше, ни меньше.

Забегая вперед, один год - это ровно 365 дней. Всегда!
 

Bitterman

Новичок
WP
Я думаю это надо исправить, т.к. когда мы говорим +1 month мы поразумеваем не какой-то абстрактный месяц, а следующий. Т.е. сдвижка на кол-во дней в следующем месяце. 1 января -> 1 февраля, 30 января -> 29 февраля. Т.е. в конечной дате до конца месяца должно оставаться такое же кол-во секунд как и в текущем.
А если прибавлять месяц к 31 января? И от 30 января до конца месяца существенно больше секунд, чем от 29 февраля. А если прибавить количество дней в следующем месяце к 1 января, то получится 30 января, а не 1 февраля.
На мой взгляд, у любой реализации будут свои минусы. Так что пусть уж лучше остается как есть.
 

WP

^_^
И не в каждом дне 24 часа, и не в каждом году 365 дней.
> А если прибавить количество дней в следующем месяце к 1 января, то получится 30 января, а не 1 февраля.
Если после прибавления полностью умещается в текущем месяце - брать 1 число след. месяца.
> А если прибавлять месяц к 31 января?
Будет 29 февраля и все будет нормально.
 

Bitterman

Новичок
WP
Если после прибавления полностью умещается в текущем месяце - брать 1 число след. месяца.
То есть 1 января + 1 месяц = 1февраля, 2 января + 1 месяц = 1 февраля, если год не високосный, то и 3 января + 1 месяц = 1 февраля? Зачем изобретать велосипед?
 
Сверху