![]() |
|
Модераторы: Aliance, skyboy, MoLeX, ksnk |
![]()
|
|
| barcelona |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 21.4.2007 Репутация: нет Всего: нет |
Здравствуйте!
Ответьте пожалуйста, как проверить, является ли число корректной датой в формате TIMESTAMP? Заранее спасибо. |
|||
|
||||
| Feldmarschall |
|
|||
|
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 1 Всего: 32 |
Очень просто. Любая.
|
|||
|
||||
| barcelona |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 21.4.2007 Репутация: нет Всего: нет |
Но какое-нибудь гигантское число с 20-ю нулями не является корректной датой.
|
|||
|
||||
| Feldmarschall |
|
|||
|
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 1 Всего: 32 |
Почему?
|
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 16 Всего: 261 |
||||
|
||||
| Feldmarschall |
|
|||
|
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 1 Всего: 32 |
Жесть. Ответ лучше вопроса.
Mal Hack, 2-4 байта? И каков же будет сейчас таймстамп в 2-байтном представлении? Что значит "до текущего времени"? А завтрашний день будет уже некорректной датой? |
|||
|
||||
| Sannis |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 14.8.2007 Где: Москва Репутация: 1 Всего: 13 |
Пункт 2 думаю подразумевал, что должно быть использованы только unsigned числа, по крайней мере в unixtimestamp, могу ошибаться. В PHP конечно не стоит думать о рамере этого числа и брать любые даты в будущем, но если думать о совместимости с каким-то другим софтом/языками, то лучше ограничивать диапазон значений. barcelona, ясное дело, что гигантское число не будет. Но даже если определять корректность простым сравнением в максимальным возможным значением, то это врядли вам сильно поможет. Наверняка есть более узкие рамки, зависящие от специфики приложеня и от текущего времени, которые нужно считать валидными, лучше исходить из таких соображений. Это сообщение отредактировал(а) Sannis - 8.7.2008, 09:46 -------------------- |
|||
|
||||
| Mal Hack |
|
||||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 16 Всего: 261 |
Следите пожайлуста за своим хамским тоном. Я с вами в одном окопе не сидел за одним компом прогу не набивал...
Как уже сказали выше unsigned, эт о раз, два, C++, на котором основан PHP с точки зрения раелизации подразумевает наличие short int и long int, в следствии чего величина памяти может варьирваться в зависимости от системы. Учите матчасть ()
Извините, копировал текст с мануала по time не удалил окончание фразы ;) |
||||
|
|||||
| Feldmarschall |
|
|||
|
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 1 Всего: 32 |
Мы говорили не о С++, а о timestamp. В С++ есть и byte. И что? Какое это имеет отношение к unixtime? И что? Можно подробнее? unsigned, ок. и какая связь с двумя байтами? Это сообщение отредактировал(а) Feldmarschall - 8.7.2008, 10:03 |
|||
|
||||
| Mal Hack |
|
||||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 16 Всего: 261 |
учите матчасть, типа byte в си нету, есть байтовый char. И говорили мы о том, что тайстамп представляется в int в php, а уже при интерпретации идет в сишный int... Далее см. выше.
Это к слову о том, что хранение метки времени осуществляется в переменной с модификатором unsigned, что увеличивает максимально-допустимое значение, в рамках одного объема памяти. |
||||
|
|||||
| Feldmarschall |
|
|||
|
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 1 Всего: 32 |
Хорошо. Нету. Ты от вопроса-то не уходи =) рассказывай про двухбайтный таймстамп =) отлично, в инт. при чем здесь short, о котором ты писал ранее? Окей, осуществляется. При чем здесь два байта? |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 16 Всего: 261 |
Таймстамп двухбайтным не бывает, он хранитс в четырехбайтной переменной. (прошу прощения за ранее допущенную оговорку)
О том, что в C в зависимости от системы, интерпретация int может быть как short, так и long, а следовательно переменная будет иметь размер 2 или 4 байта, следовательно максимально допустимое значение (вот оно и ограничение) будет либо 65 тыщ с гаком, либо 4 млрд... |
|||
|
||||
| Feldmarschall |
|
|||
|
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 1 Всего: 32 |
Отлично.
в п.1 опечатка, а в п.2 оговорка. Ну, я пошел учить матчасть, раз такое дело. barcelona, если ты сможешь сформулировать более конкретный вопрос, то сможешь получить в награду более конкретный ответ. Это сообщение отредактировал(а) Feldmarschall - 8.7.2008, 10:27 |
|||
|
||||
| barcelona |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 21.4.2007 Репутация: нет Всего: нет |
Спасибо за столь жаркую и интересную дискуссию. Я в общем-то имел в виду одновременный контроль того. чтобы значение было неотрицательным числом определённой длины. Решил это с помощью регулярного выражения. Всем спасибо.
|
|||
|
||||
| gta4kv |
|
|||
![]() Walking around mad. ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1868 Регистрация: 25.7.2006 Репутация: 1 Всего: 91 |
[offtopic]
Все темы где одновременно постят Mal Hack и Feldmarschall - можно смело переносить в холливары. [/offtopic] Это сообщение отредактировал(а) gta4kv - 8.7.2008, 14:39 |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Тексты | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |