Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: PHP класс для работы с датой
Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011 Откуда: Москва
Помог: 221 раз(а)
Всем привет!
Написал класс для работы с датой.
Если надо получить разницу в днях, или в минутах (в промежутке 24 часов), или получить дату окончания, на пример, услуги в каком-нибудь приложении.
Вот, может кому пригодится)
Просто часто встречаю на форуме вопросы на эту тему.
Метод end_date([ Дата [ Количество месяцев ]])
Возвращает дату окончания, на пример, услуги.
Без параметров возвращает дату, которая наступит ровно через месяц от текущей даты.
Принимает следующие форматы даты:
хххх.хх.хх
хххх/xx/xx
xx.xx.xxxx
xx/xx/xxxx
с любыми не числовыми разделителями (хоть запятые через пробел: хх , хх , хххх),
а так же без ведущих нулей, если хотите (х.х.хххх)
Метод diff_days(Начальная дата, [Конечная дата [ boolean ]])
возвращает разницу в днях.
Конечная дата по умолчанию текущая.
Если третий параметр == true,
то разница, если она отрицательная, выведится без знака минус.
По умолчанию false
Метод diff_time(Начальное время, [ Конечное время [ boolean ]])
возвращает разницу во времени в минутах.
Конечное время по умолчанию текущее.
Если третий параметр == true,
то разница, если она отрицательная, выведится без знака минус.
По умолчанию false
Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011 Откуда: Москва
Помог: 221 раз(а)
sKaa пишет:
timestamp храню
Ну и? Как сделаете?
sKaa
Отправлено: 11 Февраля, 2012 - 02:28:25
Частый посетитель
Покинул форум
Сообщений всего: 979
Дата рег-ции: Окт. 2011 Откуда: Россия г. Нижний Новгород
Помог: 25 раз(а)
[+]
armancho7777777 пишет:
Ну и? Как сделаете?
лол )) Ещё проще ))) забей короче, ты не в курсе походу че такое timestamp )))
armancho7777777
Отправлено: 11 Февраля, 2012 - 02:29:33
Активный участник
Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011 Откуда: Москва
Помог: 221 раз(а)
sKaa пишет:
Зачем мне там дата целиком??
Тем более, к дате ещё и время впридачу) (Добавление)
sKaa пишет:
забей короче
И не собираюсь.
Заканчивай, раз начал.
sKaa
Отправлено: 11 Февраля, 2012 - 02:36:51
Частый посетитель
Покинул форум
Сообщений всего: 979
Дата рег-ции: Окт. 2011 Откуда: Россия г. Нижний Новгород
Помог: 25 раз(а)
[+]
armancho7777777 ладно для особо одаренных timestamp это кол-во секунд которое прошло с эпохи юникс. Записывается оно ввиде числа 1328920322. Вот из этого числа легко и удобно можно получить в любое время дату, время в минутах, секундах и вывести всё это как угодно, а если все даты хранятся в таком виде то и работать проще с ними в таком виде. Допустим дата если достать из бд дату в таком виде : 1328920322 и прибавить в ней 30 дней будет выглядеть как 1328920322 + 60 * 60 * 24 * 30.
И запрос в базу выглядит :
WHERE blabla<1328920322
WHERE blabla>1328920322
а все функции пхп для работы с датами и заточены под этот самый таймстамп.
echo date('Y.m.d h:i:s', 1328920322 );
mktime(...) // return timestamp
armancho7777777
Отправлено: 11 Февраля, 2012 - 02:40:42
Активный участник
Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011 Откуда: Москва
Помог: 221 раз(а)
sKaa пишет:
Допустим дата если достать из бд дату в таком виде : 1328920322
С чего это она будет в таком виде?
На сколько я знаю, она в таком:
хххх-хх-хх хх:хх:хх (Добавление)
sKaa пишет:
timestamp это кол-во секунд которое прошло с эпохи юникс
Считаешь, что сообщил мне новость дня ?)))
sKaa
Отправлено: 11 Февраля, 2012 - 02:43:48
Частый посетитель
Покинул форум
Сообщений всего: 979
Дата рег-ции: Окт. 2011 Откуда: Россия г. Нижний Новгород
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.