Гость
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / прибавить 7 дней к дате / 9 сообщений из 9, страница 1 из 1
03.07.2017, 13:44
    #39481733
waszkiewicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
прибавить 7 дней к дате
Код: php
1.
$_SESSION["curDate"]=date("Ymd",strtotime($_SESSION["curDate"]. '+7 days'));



нет более простого способа?
...
Рейтинг: 0 / 0
03.07.2017, 17:49
    #39481985
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
прибавить 7 дней к дате
Код: php
1.
2.
3.
$date = new DateTime();
$date->modify('+7 day');
print $date->format('Y-m-d H:i:s');
...
Рейтинг: 0 / 0
03.07.2017, 18:17
    #39482003
waszkiewicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
прибавить 7 дней к дате
поставлю вопрос по другому
Код: php
1.
if(empty($_SESSION["curDate"])): $_SESSION['curDate']=date('Ymd'); endif;


вот что есть.
цель - хранить текущую дату в сессии и прибавлять/отнимать 7 дней (для отображения всех дней недели, в которой текущая дата ($_SESSION["curDate"] живет)
$_SESSION["curDate"] - строка (в соседнем топике спрашивал, кстати и за форматирование).
Может подход в корне неверный?
...
Рейтинг: 0 / 0
03.07.2017, 18:52
    #39482026
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
прибавить 7 дней к дате
waszkiewiczцель - хранить текущую дату в сессии и прибавлять/отнимать 7 дней (для отображения всех дней недели, в которой текущая дата ($_SESSION["curDate"] живет)Это больше похоже на Ваш вариант решения какой-то неведомой нам задачи. Потому оценить правильность подхода к решению задачи вряд ли возможно. В частности, сессия может иметь какое-то стандартное время жизни менее получаса, тогда не вижу огромного смысла хранить там дату. Если сессия живет дни или месяцы, да привязана к конкретному пользователю (на уровне ID пользователя) - тогда другое дело.

Хранение данных в сессии - задача сама по себе тривиальная. Вычислить +/- 7 дней от текущей - тоже ничего сложного.
Вот получить список дат по дням недели, включающей текущую дату - это уже чуточку интереснее.
...
Рейтинг: 0 / 0
03.07.2017, 19:13
    #39482036
waszkiewicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
прибавить 7 дней к дате
vklewaszkiewiczцель - хранить текущую дату в сессии и прибавлять/отнимать 7 дней (для отображения всех дней недели, в которой текущая дата ($_SESSION["curDate"] живет)Это больше похоже на Ваш вариант решения какой-то неведомой нам задачи. Потому оценить правильность подхода к решению задачи вряд ли возможно. В частности, сессия может иметь какое-то стандартное время жизни менее получаса, тогда не вижу огромного смысла хранить там дату. Если сессия живет дни или месяцы, да привязана к конкретному пользователю (на уровне ID пользователя) - тогда другое дело.

Хранение данных в сессии - задача сама по себе тривиальная. Вычислить +/- 7 дней от текущей - тоже ничего сложного.
Вот получить список дат по дням недели, включающей текущую дату - это уже чуточку интереснее.
да простая задача - показать юзеру его расписание, в разрезе дней недели. Неделя отталкивается от даты, когда юзер влетел в свое расписание. Далее, оный (юзер) жмет кнопки "вперед"/"вназад" мечтая смотреть след/пред недели. Получить список дат, входящих в неделю - вот тут совсем не вижу траблов. От слова "совсем". Да и "код" представленный мной - рабочий. Я в php совсем зеленый.
...
Рейтинг: 0 / 0
03.07.2017, 19:19
    #39482038
waszkiewicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
прибавить 7 дней к дате
примерно вот так
...
Рейтинг: 0 / 0
03.07.2017, 20:40
    #39482100
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
прибавить 7 дней к дате
Так вполне понятно.

Мне видится такое решение.
1. Получить понедельник текущей недели, если текущая дата не является понедельником. Это можно сделать тупым отлистыванием по одному дню назад.
2. Понедельник уже есть. Плюсуем шесть раз по одному дню и получаем полный список дат для отображения текущей недели.
3. Прибавить ещё день и получить дату для ссылки на следующую неделю.
4. Сминусовать 14 дней и получить дату для ссылки на предыдущую неделю.
5. По полученным данным сформировать ссылки и человекопонятные даты.

Обычно для таких вещей использую DateTime и DateInterval.
DateTime при инициализации вполне понимает формат вида "2017-07-03", это число можно взять из запроса.

Использование сессии представляется мне лишним. Хотя, если хочется хранить временные точки в сессии - так почему нет...
...
Рейтинг: 0 / 0
03.07.2017, 22:31
    #39482135
waszkiewicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
прибавить 7 дней к дате
vkle,
о боги, шо Вы такое несете?
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
public function getWeek($date) {
    $this->setLocale('ru_RU');    
    $this->sth="select date_format(dt,'%d %b %Y') dt
                from calendar c
                where 1=1
                and c.dt between date_add(:date, INTERVAL 0-WEEKDAY(:date)  DAY)
                and date_add(:date, INTERVAL  6-WEEKDAY(:date) DAY)";
                
    $this->params=array('date'=>$date);
    return $this->execute();
}



calendar - таблица дат, живущая в базе.

скрин - это уже результат. Я спрашивал за правильность решения в принципе, причем только в плане PHP
...
Рейтинг: 0 / 0
03.07.2017, 23:26
    #39482156
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
прибавить 7 дней к дате
waszkiewicz, тогда вообще не вижу смысла распылять вычисление пакета дат по разным местам.
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / прибавить 7 дней к дате / 9 сообщений из 9, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]