|
|
|
| Всем привет, хотелось бы узнать Ваше мнение, по-поводу такого кода.
Задача такая. Для каждой даты есть своё число, чем дата старше, тем число выше, т.е. с каждым днём к числу прибавляется 1.
Для старта я взял дату 15.06.2009, ему принадлежит число 3454. Интересует, не будет ли неточностей в расчетах, допустим, спустя полтора года из-за разницы в количестве дней в месяцах.
<?
// Число 3454 принадлежит дате 15.06.2009
$time = mktime(0,0,0,06,28,2009)-mktime(0,0,0,06,15,2009);
// Округляем число, если оно с запятыми
$okrug = round(str_replace(',','.',$time/86400));
// Получаем значение для нужной даты, т.е. дате 28.06.2009 принадлежит число 3467
echo '3454'+$okrug; //3467
?>
|
Всем спасибо! | |
|
|
|
|
|
|
|
для: Diplex
(28.06.2009 в 17:13)
| | В расчетах чего? Для чего эти числа? | |
|
|
|
|
|
|
|
для: sim5
(28.06.2009 в 18:41)
| | Есть день старта, в каком-то там 2000ом году.... это был 1ый день... и таким образом мы получили дату и число для даты.... и с каждым днём число увеличивается.... и вот прошли годы, и число уже равно 3000 с чем-то... у меня данных к этим числам нет, есть только дата. Поэтому я взял известное число и известную дату для этого числа. И мне надо генерировать это число в зависимости от даты.
Если нет ничего критического, то всем спасибо ;) | |
|
|
|
|
|
|
|
для: Diplex
(28.06.2009 в 20:01)
| | Рассказ горем убитого человека :)) Ничего не понятно, число то это зачем? Я понимаю, что вы получая некую стартовую дату, заодно и получили ее номер дня в году. "... и вот прошли годы, и число уже равно 3000 с чем-то...", и по этому числу нужно получить дату (вот только зачем такая кухня, если так?), еще можно понять как-то. У вас же, "мне надо генерировать это число в зависимости от даты". Опять число для даты, которая наступила через 3000 с чем-то? | |
|
|
|
|
|
|
|
для: sim5
(28.06.2009 в 21:03)
| | Здесь не важен рассказ)) Хочу просто узнать, не будет ли путанницы в днях? Потому что, если даже ошибка будет на 1 день, то всё на смарку...) | |
|
|
|
|
|
|
|
для: Diplex
(29.06.2009 в 01:27)
| | Так я у вас и спрашиваю, для чего нужно это число? К примеру, вы можете знать номер дня в году, и по этому номеру дня производить некие сравнения, например, пропуская все выходные дни в году (а это субботы, воскресения, праздники и переносы выходных дней). Зная красные дни в году, это не сложно, и сравнение проблем не вызовет, и ошибок не будет, но вот если по этому номеру дня вывести дату, и не учесть переход на летнее время, то будет ошибка в отметке на сутки после последнего выходного дня в марте месяце.
Для чего у вас это магическое число, совсем не понятно, будет ли путаница, какая, и почему.... | |
|
|
|
|
|
|
|
для: Diplex
(28.06.2009 в 17:13)
| | На первый взгляд вроде все верно, но надо ли Вам оно? )
Не подходит ничего стандартного? Может strtotime ? | |
|
|
|
|
|
|
|
для: Diplex
(28.06.2009 в 17:13)
| | что за запятая в числе? О чем Вы?
GregorianToJD() чем не устраивает?
time/86400 - ересь, т.к. в сутках разное число секунд. | |
|
|
|