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

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

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

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

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

koreets2011



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день.
 
Пожалуйста подскажите как на PHP решить такую задачу:
Есть две даты 01.01.2017 и 01.01.2018 (к примеру)
И есть произвольный день в недели который пользователь укажет, ну скажем это будет вторник.
Нужно записать в базу (ну это я умею))) ) весь набор дат от начальной до конечной
в таком формате
 
...
Понедельник-06.11.2017-1700
Вторник-07.11.2017-ВЫХОДНОЙ
среда-07.11.2017-1700
четверг-07.11.2017-1700
пятница-07.11.2017-1700
суббота-07.11.2017-1700
Воскресенье-07.11.2017-1700
....  
И.Т.Д
 
Натолкните на правильный путь. И можно сразу код за $

Всего записей: 410 | Зарегистр. 13-10-2011 | Отправлено: 10:06 07-11-2017
Mavrikii

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

Код:
<?php
$days = ['Воскресенье', 'Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота'];
$date1 = strtotime('2017-01-01');
$date2 = strtotime('2018-01-01');
$select = 2; // Tuesday
while($date1 <= $date2) {
 $d = date('w', $date1);
 echo $days[$d] . ' - ' . date('d.m.Y', $date1) . '-' . ($d != $select ? '1700' : 'Выходной') . "\n";
 $date1 = strtotime('+1 day', $date1);
}

 
можно и самим mysql все сделать

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 10:22 07-11-2017 | Исправлено: Mavrikii, 10:22 07-11-2017
koreets2011



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
От души, кинь свой номер в ЛС на счет закину

Всего записей: 410 | Зарегистр. 13-10-2011 | Отправлено: 10:55 07-11-2017
Mavrikii

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

Цитата:
кинь свой номер в ЛС на счет закину

не нужно. тем более тут делов было на 2 минуты.

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 11:00 07-11-2017
koreets2011



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
А правильно ли будет в цикле использовать INSERT?  
 

Код:
 
while($date1 <= $date2) {
   $d = date('w', $date1);
   //echo "<p>".$days[$d]." - ".date('d.m.Y', $date1)."-".($d != $select ? $price : 'Выходной')."</p>";
   ТУТ КОМАНДА ДЛЯ ЗАПИСИ В БД
   $date1 = strtotime('+1 day', $date1);
}
 

Всего записей: 410 | Зарегистр. 13-10-2011 | Отправлено: 11:42 07-11-2017
Mavrikii

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

Цитата:
А правильно ли будет в цикле использовать INSERT?  

Можно так, а можно все собрать в один запрос.

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 13:30 07-11-2017
koreets2011



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А почему так не работает запрос?
 

Код:
 
$d = date('Y-m-d', strtotime('12.11.2017'));
mysqli_query($con,"SELECT * FROM `ORDER` WHERE `DATES` < $d");
 

 
Возвращает пустой запрос, столбец DATES это тип DATE (2017-11-12)

Всего записей: 410 | Зарегистр. 13-10-2011 | Отправлено: 14:03 07-11-2017
Mavrikii

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

Цитата:
это тип DATE

А в $d - unix timestamp
 
PS: сорри, не посмотрел внимательно. А кавычки где, строка же?
Ну и смотреть содержимое $d, в таком виде, в каком дата указана в strtotime, функция может ее и не распознать.
И тогда в $d окажется 1970 год.

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 16:17 07-11-2017 | Исправлено: Mavrikii, 16:35 07-11-2017
koreets2011



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
Разобрался, кавычки поставил и все норм.

Код:
 
$d = date('Y-m-d', strtotime('12.11.2017'));  
mysqli_query($con,"SELECT * FROM `ORDER` WHERE `DATES` < '".$d."'");  
 

Всего записей: 410 | Зарегистр. 13-10-2011 | Отправлено: 17:24 07-11-2017
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Интернет » Web-программирование » PHP Работа с датами


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru