Страница 1 из 1
Загадка про даты
Добавлено: 2009-08-21 7:27:34
spy
Нужно с помощью PHP обработать файлик, который сделала одна программка:
Код: Выделить всё
<intervals><interval begin="40045" end="40052"/></intervals>
<day id="40047" price0="" price1="" price2="" price3="" price4="" price5="" price6="">
Меня интересует как в
begin="40045",
end="40052" и
id="40047" зашифрованны даты.
begin="40045" - это 20.08.2009
end="40052" - это 26.08.2009

Re: Загадка про даты
Добавлено: 2009-08-21 8:15:23
Alex Keda
Код: Выделить всё
begin="40045" - это 20.08.2009
end="40052" - это 26.08.2009
вы уверены? по датам там 6 дней, а по числам 7...
несходитсья
Re: Загадка про даты
Добавлено: 2009-08-21 11:41:54
terminus
Код: Выделить всё
40052 - 40045 = 7
26.08.2009 - 20.08.2009 = 7 (если 20 включительно)
он считает в днях, при этом "эпоха" у него началась 40046 дней назад (команда date -j -v-40046d выдает ошибку - походу дата лежит до 1970. Может это день рождения программиста указан?).

Re: Загадка про даты
Добавлено: 2009-08-21 12:52:31
paradox
блаблабла
сначала было это на одном форуме теперь и лисяре это запостили
может хватит?
обратитесь к разработчику того сайта ))) и нечего гадать
Re: Загадка про даты
Добавлено: 2009-08-21 13:27:44
spy
Я это постю первый раз в жизни, нужно без разработчиков выяснить это...
Давай без истерик)
говорите по делу.
спасибо
Re: Загадка про даты
Добавлено: 2009-08-21 13:31:54
paradox
истерик нет)
просто уже не раз натыкаюсь на форумаъ на эти загадки с датами
Re: Загадка про даты
Добавлено: 2009-08-21 16:06:33
Sla
почему загадки?
MS формат даты
даты считаются от 01/01/1900
Re: Загадка про даты
Добавлено: 2009-08-21 17:31:36
spy
О по делу))
Гуд) Ковырну , размещу результат
Re: Загадка про даты
Добавлено: 2009-10-29 6:43:40
spy
Как и обещал
Перевести к нормальному виду:
Код: Выделить всё
<?php
$excel_date = 40179;
$normal_date = date("m/d/Y", strtotime("01/01/1900 + $excel_date days - 2 days"));
echo($normal_date);
?>
Перевести назад в EXEL, можно с помощью функции:
Код: Выделить всё
function getDays1900($date){
$stop = unixtojd(strtotime($date));
$start = gregoriantojd(1, 1, 1900);
return ($stop - $start + 2);
}