|
| |
|
|
| |
для: P@Sol
(01.06.2007 в 15:50)
| | | именно в таком виде их и хранит MySQL. | |
| |
|
|
| |
|
|
| |
для: elenaki
(01.06.2007 в 12:03)
| | | можно попробовать хранить в виде 20070601 :) | |
| |
|
|
| |
|
|
| |
для: elenaki
(01.06.2007 в 13:30)
| | | не опирайтесь на unixtime
Опирайтесь на TO_DAYS() в MySQL
и на JDToGregorian() и GregorianToJD() в PHP.
Это ошибка программистов, портировавших функцию time под windows.
Концов тут не найти.
Майкрософт как всегда считает что прав он.
Определения posix говорят об обратном.
В результате нихрена не работает. | |
| |
|
|
| |
|
|
| |
для: elenaki
(01.06.2007 в 13:16)
| | | ======================================================
При всех переводах дней в года, месяцы и дни для смягчения погрешности вычисления таблица считает, что:
- в году 365,25 дней, т.е. (366+365+365+365)/4;
- в месяце 30.4375 дней, т.е. 365,25/12
не будет ли такая погрешность слишком велика? расстояния-то по времени немаленькие, 300-400 лет...
======================================================
а если разбить дату на 3 составляющие и хранить их в разных полях как целые числа? тогда
с ними можно будет любые действия производить... а проверять начинать с года. если год в
базе меньше, чем год, введенный пользователем - условие выполнено, сравниваем месяц,
если и месяц меньше - смотрим день. если все три условия выполнены - нас устраивает эта
запись, выводим ее, ищем другую. а? как? надо попробовать... | |
| |
|
|
| |
|
|
| |
для: elenaki
(01.06.2007 в 13:16)
| | | Разница тут будет intval(((1910 - 1900) / 4) * 86400) + (1910 - 1900) * 365 * 86400 + 86400 = 315662400 секунд. | |
| |
|
|
| |
|
|
| |
для: Unkind
(01.06.2007 в 12:28)
| | | непонятно, неужели я первая работаю с такими древними датами? поиск по теме ничего не
дал. в старой базе, из которой я импортирую данные, есть что-то похожее на метку времени.
отрицательное число или не слишком большое положительное. но у меня нет алгоритма
перевода 4018 в 31/12/1910. 31/12/1920 будет 7671, а 31/12/1900 уже будет 366... как можно
вытянуть зависимость? не считать же дни вручную?
Unkind, если не сложно - напишите мне эти даты в unixdate. a я найду разницу в секундах
между ними.. | |
| |
|
|
| |
|
|
| |
для: Loki
(01.06.2007 в 12:26)
| | | У меня работает.
Тогда, возможно, придется делать свою метку времени. И считать, скажем, дни, а не секунды.. | |
| |
|
|
| |
|
|
| |
для: elenaki
(01.06.2007 в 12:19)
| | | винда не умеет работать с отрицательными датами, а линукс - вполне. | |
| |
|
|
| |
|
|
| |
для: Unkind
(01.06.2007 в 12:05)
| | | не просто год, а с определенного года (а может и дня с месяцем!) до определенного года (а
может и дня с месяцем). а ваш код пишет это:
Warning: date(): Windows does not support dates prior to midnight (00:00:00), January 1, 1970 in d:\localhost\www\php\tests\date.php on line 31 | |
| |
|
|
| |
|
|
| |
для: elenaki
(01.06.2007 в 12:03)
| | |
<?php
echo(date("d-m-Y H:i:s", -100000));
?>
|
P.S. А если просто года - то, в принципе, зачем UNIXTIMESTAMP вообще? Так года и записывайте.. | |
| |
|
|
|