Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » PHP: time() через месяц, 2 месяца и т.д.

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте,
 
Но не знаю как получить так, чтоб в результате получалось так:
Сейчас: 02.01.2014 16:15:01
В результате получить: 02.02.2014 00:00:01 (+ 1 месяц и при этом, часы, минут стоят по 0 а секунды 01) аналогично + N месяцев....
 
пробовал очень много вариантов, но вообще не получается((
 
получилось сделать только так:

Код:
echo date("d.m.Y H:i:s", (time()));
 
$ye = 60*60*24*date("t");
echo "<br/>";
echo date("d.m.Y H:i:s", (time()+$ye));
 
$ye = 60*60*24*(date("t")+(date("t")+1));
echo "<br/>";
echo date("d.m.Y H:i:s", (time()+$ye));
 
$ye = 60*60*24*(date("t")+(date("t")+2));
echo "<br/>";
echo date("d.m.Y H:i:s", (time()+$ye));
 

 
Только в этом коде, когда + 2 или + 3 месяца, то теряется 1 час времени... не знаю как вернуть(
Спасибо.

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 22:05 19-09-2014 | Исправлено: Sutar, 22:10 19-09-2014
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar
Внимательно курить http://www.php.net/strtotime и не изобретать велосипед.
 

Цитата:
Сейчас: 02.01.2014 16:15:01  
В результате получить: 02.02.2014 00:00:01  


Код:
date_default_timezone_set('Europe/Moscow');
echo date('d.m.Y H:i:s', strtotime("02.01.2014 16:15:01 +1 month midnight +1 second"));

 
timezone необязательно - зависит от месторасположения машины и принципа записи даты в ее зоне. если речь о нынешней дате/времени, то указывать ее необязательно - отсчет по умолчанию идет от нее.

Всего записей: 15100 | Зарегистр. 20-09-2014 | Отправлено: 23:26 20-09-2014
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii

Код:
$vip_aphp = Array("+1 week", "+2 week", "+1 month");
$text = $vip_aphp[2];
$vip_time = strtotime("$text");
echo date("d.m.Y H:i:s", $vip_time);

 
а как сделать чтоб тут работало нормально? не работает(

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 22:39 28-09-2014
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar

Цитата:
не работает

не работает что и что должно было получиться?

Всего записей: 15100 | Зарегистр. 20-09-2014 | Отправлено: 22:41 28-09-2014
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
показывает текущую дату...
 
Есть массив (как изменяется дата):

Код:
$vip_aphp = Array("+1 week", "+2 week", "+1 month");  

 
Через функцию которую вы дали, вытаскиеваем с массива нужную нам размерность, и получаем дату:

Код:
$vip_time = strtotime($vip_aphp[2]);

 
А потом печатаем:

Код:
echo date("d.m.Y H:i:s", $vip_time);

 
в результате выходит текущею дата....

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 23:02 28-09-2014
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar

Цитата:
в результате выходит текущею дата...

у меня выводит

Цитата:
28.10.2014 и время

проверяйте локальную дату на сервере.

Всего записей: 15100 | Зарегистр. 20-09-2014 | Отправлено: 23:04 28-09-2014 | Исправлено: Mavrikii, 23:05 28-09-2014
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
вроде работает уже....
а ещё такой вопрос...
 
такая запись будет правильной?
 

Код:
date("d.m.Y H:i:s", strtotime(date("d.m.Y H:i:s", $t)." +1 month"));

 
это продление на 1 месяц от даты $t
 
т.е. пример:
сегодня: 28.01.2012 15:16:23
добавили в $t 1 месяц, получилось: 28.02.2012 15:16:23
через время (1-2 часа)
мы К $t добавляем ещё 1 месяц, получается: 28.03.2012 15:16:23
в результате должно быть так, чтоб покамест не наступила дата, при первом добавлении месяца, мы к той дате добавляем месяц....
вроде работает)
просто на форуме, где вы кидали про функцию strtotime(), там были  
 

Цитата:
<?php  
echo date("jS F, Y", strtotime("11.12.10"));  
// outputs 10th December, 2011  
 
echo date("jS F, Y", strtotime("11/12/10"));  
// outputs 12th November, 2010  
 
echo date("jS F, Y", strtotime("11-12-10"));  
// outputs 11th December, 2010  
?>  

 
или лучше записать через -?

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 19:15 29-09-2014
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar
попросил же прочитать мануал!
ну откуда столько лени.
 
strtotime("+1 month", $t);
где $t - timestamp

Всего записей: 15100 | Зарегистр. 20-09-2014 | Отправлено: 19:19 29-09-2014 | Исправлено: Mavrikii, 19:19 29-09-2014
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii

Цитата:
timestamp

это $t = time(); ?

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 20:02 29-09-2014
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar

Цитата:
это $t = time()

а что вы сюда пихать собирались?

Цитата:
date("d.m.Y H:i:s", $t)

не строку же с датой.

Всего записей: 15100 | Зарегистр. 20-09-2014 | Отправлено: 20:03 29-09-2014
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
всё, сделал. Работает отлично. Спасибо за функцию strtotime()
я делал функцию "продление времени"
т.е. если пользователь чтото купил до 01.01.2015, то он может "продлить" без утери секунд и т.д. на месяц, неделю, год и т.д.

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 20:22 29-09-2014
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Интернет » Web-программирование » PHP: time() через месяц, 2 месяца и т.д.


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru