Добрый день. Работая над новой «электронной очередью» столкнулся с такой проблемой. Когда дата в базе данных представлена в виде числа.
Моя задача была получить текущую дату например (18-05-2013), добавить к ней 30 дней. Затем преобразовать получившуюся дату в число и записать в базу данных.
Я использовал для работы два примера:
Первый пример где можно изменить часовой пояс GMT:
[php] $str=’24-04-2013 23:00 GMT+0′;echo $str,'<br/>’;
$datastamp=strtotime($str);
echo $datastamp,'<br/>’;
echo gmdate(‘D, d M Y H:i:s T’, $datastamp);
[/php]
Второй пример без данного параметра:
[php]
$str=’2013-04-25 09:00′;
echo $str,'<br/>’;
$datastamp=strtotime($str);
echo $datastamp,'<br/>’;
echo gmdate(‘D, d M Y H:i:s T’, $datastamp);
[/php]
Чтобы получить дату на 30 дней вперед я воспользовался вот таким кодом:
[php]
echo date(‘Y-m-d H:i’,mktime(0,0,0,date("m"),date("d")+30,date("Y"))).'<br />’;
[/php]
Вот пример как пользователю сдвинуть дату выхода из временной группы на 30 дней вперед:
[php] $datastamp=strtotime(date(‘Y-m-d H:i’,mktime(0,0,0,date("m"),date("d")+30,date("Y"))));$db->query(‘update ‘ . PREFIX . ‘_users set user_group=’.$new_group_id.’, time_limit=’.$datastamp.’ where name="’.$member_name.’";’);
[/php]Если у Вас есть вопросы или замечания, пишите охотно включу в статью. С ссылкой на Ваш сайт или на Ваш профиль.
приветствую…
а как с Вами связаться можно? спасибо
Ответил на Вашу почту.
зачем же так:
$datastamp=strtotime(date(‘Y-m-d H:i’,mktime(0,0,0,date(«m»),date(«d»)+30,date(«Y»))));
смею заметить, что функция strtotime возвращает время в юникс формате, а значит для пущей правильности надо так:
$datastamp=strtotime(date(‘Y-m-d H:i’,mktime(0,0,0,date(«m»),date(«d»),date(«Y»))))+30*86400;
// 86400 = 24*60*60
// ;)
Спасибо, учту.