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.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
event
Отправлено: 12 Августа, 2012 - 23:47:40
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 542
Дата рег-ции: Май 2011  


Помог: 0 раз(а)




Привет.
Есть такой код:
PHP:
скопировать код в буфер обмена
  1. $datetime = "2012-08-12 23:45:02";
Нужно к этому времени добавить 1 день. (еще как добавить 1 год, или 1 месяц?)...
 
 Top
caballero
Отправлено: 13 Августа, 2012 - 00:17:02
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




strtotime()


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Hawkmoth
Отправлено: 13 Августа, 2012 - 00:17:05
Post Id


Посетитель


Покинул форум
Сообщений всего: 329
Дата рег-ции: Янв. 2012  


Помог: 6 раз(а)




PHP:
скопировать код в буфер обмена
  1. $arr=explode(" ",$datetime);
  2. $date=explode('-',$arr[0]);
  3. $time=explode(':',$arr[1]);
  4. $timestamp=mktime($time[0],$time[1],$time[2],$date[1],$date[2],$date[0]);
  5. $tomorrow=$timestamp+86400;
  6. echo date("H:i:s d-m-Y",$tomorrow); //выведет завтра в тоже время
  7. $next_month=mktime($time[0],$time[1],$time[2],$date[1]+1,$date[2],$date[0]);
  8. echo date("H:i:s d-m-Y",$next_month); //выведет то же время в след. месяце
  9. $next_year=mktime($time[0],$time[1],$time[2],$date[1],$date[2],$date[0]+1);
  10. echo date("H:i:s d-m-Y",$next_year); //выведет то же время в след. году
  11.  


Вообще, время лучше хранить в UNIX_TIMESTAMP, а форматировать при необходимости вывода.
 
 Top
Bartezz
Отправлено: 13 Августа, 2012 - 00:17:42
Post Id



Гость


Покинул форум
Сообщений всего: 70
Дата рег-ции: Февр. 2010  


Помог: 1 раз(а)




PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $datetime = "2012-08-12 23:45:02";
  3.  
  4. // +1 день
  5. echo "<br/>".date ("Y-m-d H:i:s", mktime(substr($datetime, 11, 2), substr($datetime, 14, 2), substr($datetime, 17, 2), substr($datetime, 5, 2), (substr($datetime, 8, 2)+1), substr($datetime, 0, 4)));
  6.  
  7. // +1 месяц
  8. echo "<br/>".date ("Y-m-d H:i:s", mktime(substr($datetime, 11, 2), substr($datetime, 14, 2), substr($datetime, 17, 2), (substr($datetime, 5, 2)+1), substr($datetime, 8, 2), substr($datetime, 0, 4)));
  9.  
  10. // +1 год
  11. echo "<br/>".date ("Y-m-d H:i:s", mktime(substr($datetime, 11, 2), substr($datetime, 14, 2), substr($datetime, 17, 2), substr($datetime, 5, 2), substr($datetime, 8, 2), (substr($datetime, 0, 4)+1)));
  12. ?>

http://www.php.su/functions/?substr
http://www.php.su/functions/?mktime
http://www.php.su/functions/?date

(Отредактировано автором: 13 Августа, 2012 - 00:21:18)

 
 Top
caballero
Отправлено: 13 Августа, 2012 - 00:26:57
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




фига се наговнокодили

$datetime = "2012-08-12 23:45:02";
echo date("Y-m-d", strtotime("+1 day",strtotime($datetime)));
echo date("y-m-d", strtotime("+1 month",strtotime($datetime)));
echo date("y-m-d", strtotime("+1 year",strtotime($datetime)));

(Отредактировано автором: 13 Августа, 2012 - 00:28:57)



-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Hawkmoth
Отправлено: 13 Августа, 2012 - 00:27:21
Post Id


Посетитель


Покинул форум
Сообщений всего: 329
Дата рег-ции: Янв. 2012  


Помог: 6 раз(а)




Еще варианты?
PS. Баян
Спойлер (Отобразить)
 
 Top
armancho7777777 Супермодератор
Отправлено: 13 Августа, 2012 - 00:32:35
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




PHP version >= 5.3.0
PHP:
скопировать код в буфер обмена
  1.  
  2. $datetime = "2012-08-12 23:45:02";
  3.  
  4. $date = new DateTime($datetime);
  5.  
  6. // + 1 день
  7. $date->add(new DateInterval('P1D'));
  8.  
  9. echo $date->format('Y-m-d H:i:s') . ' ( + 1 день)<br>';
  10.  
  11. // + ещё 1 месяц
  12. $date->add(new DateInterval('P1M'));
  13.  
  14. echo $date->format('Y-m-d H:i:s') . ' ( + ещё 1 месяц)<br>';
  15.  
  16. // + ещё 1 год
  17. $date->add(new DateInterval('P1Y'));
  18.  
  19. echo $date->format('Y-m-d H:i:s') . ' ( + ещё 1 год)<br>';
  20.  
  21. // А можно всё сразу ))
  22. //  + 1 год 1 месяц 1 день
  23.  
  24. $date->add(new DateInterval('P1Y1M1D'));
  25.  
  26. echo $date->format('Y-m-d H:i:s') . ' ( + ещё 1 год 1 месяц 1 день)';
  27.  


caballero пишет:
фига се наговнокодили
Радость

(Отредактировано автором: 13 Августа, 2012 - 01:13:07)

 
 Top
event
Отправлено: 13 Августа, 2012 - 13:33:07
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 542
Дата рег-ции: Май 2011  


Помог: 0 раз(а)




caballero пишет:

$datetime = "2012-08-12 23:45:02";
echo date("Y-m-d", strtotime("+1 day",strtotime($datetime)));
echo date("y-m-d", strtotime("+1 month",strtotime($datetime)));
echo date("y-m-d", strtotime("+1 year",strtotime($datetime)));


Это гуд, но потом получается 2012-08-12 00:00:00 (минуты, часы, секунды) не добавляет...
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB