Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Работа с диапазоном дат
 
 автор: Zhora_88   (27.04.2010 в 18:28)   письмо автору
 
 

Помогите, пожалуйста, решить такую задачу:
ДАНО:
1. Есть две базы данных: Первая имеет столбец `InsTimeStamp` типа "TimeStamp" (например, 2010-03-16 08:28:33), Вторая имеет столбец `date`типа "int" (хранит в себе метку времени, которая состоит только из дня, месяца и года).
2. Есть форма с двумя текстовыми полями (выбор диапазона дат "С", "по"). Для выбора начальной и конечной даты используются календарики (дейтпикеры), которые выводят строку 08/04/2010.
3. Ну и само собой есть кнопка "Отправить", которая отправляет данные с полей.

ВОПРОС:
Как задать запрос на поиск строк, удовлетворяющих заданному диапазону дат в первой бд и перенести их во вторую бд, учитывая конвертирование дат.

  Ответить  
 
 автор: Trianon   (27.04.2010 в 21:34)   письмо автору
 
   для: Zhora_88   (27.04.2010 в 18:28)
 

>...Вторая имеет столбец `date`типа "int" (хранит в себе метку времени, которая состоит только из дня, месяца и года).

это как?

  Ответить  
 
 автор: Zhora_88   (27.04.2010 в 22:24)   письмо автору
 
   для: Trianon   (27.04.2010 в 21:34)
 

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

  Ответить  
 
 автор: Trianon   (27.04.2010 в 22:26)   письмо автору
 
   для: Zhora_88   (27.04.2010 в 22:24)
 

смутило "которая состоит только из дня, месяца и года"
Unix timextamp - линейная непрерывная метка, и на компоненты не распадается.

  Ответить  
 
 автор: neadekvat   (27.04.2010 в 22:27)   письмо автору
 
   для: Zhora_88   (27.04.2010 в 22:24)
 

mktime возвращает время в формате UNIX
А знаете, что это? Это количество секунд. Так как это значение может отражать только день, месяц и год?

  Ответить  
 
 автор: Zhora_88   (28.04.2010 в 14:04)   письмо автору
 
   для: neadekvat   (27.04.2010 в 22:27)
 

я извиняюсь за формулировку вопроса и некоторых определений, но я думаю здесь люди умные и смогут докумекать что я имел ввиду. извиняюсь. а по поводу ...Это количество секунд. Так как это значение может отражать только день, месяц и год?... то почему нельзя отобразить именно значение какого-нибудь числа, месяца и года в секундах, а время (часы, минуты, секунды) обнулить?... вобщем ниже написано, то что я имел ввиду.

  Ответить  
 
 автор: eli   (27.04.2010 в 23:25)   письмо автору
 
   для: Zhora_88   (27.04.2010 в 18:28)
 

>ВОПРОС:
>Как задать запрос на поиск строк, удовлетворяющих заданному диапазону дат в первой бд и перенести их во вторую бд, учитывая конвертирование дат.

Мне кажется вопрос не правильно сформулирован.

Возможно этот код вам поможет

$date_begin = $_POST['date_begin'];
$date_end = $_POST['date_end'];

$date_begin = implode('/', $date_begin);
$date_end = implode('/', $date_end);

// для дат в формате datetime
$t_date_begin = $date_begin[2] . '-' . $date_begin[1] . '-' . $date_begin[0] . '00:00:00';
$t_date_begin = $date_begin[2] . '-' . $date_begin[1] . '-' . $date_begin[0] . '00:00:00';

//для дат в формате целого числа
$m_date_begin = mktime( 0,0,0,$date_begin[0],$date_begin[1],$date_begin[2]);
$m_date_end = mktime( 0,0,0,$date_end[0],$date_end[1],$date_end[2]);

  Ответить  
 
 автор: Trianon   (27.04.2010 в 23:29)   письмо автору
 
   для: eli   (27.04.2010 в 23:25)
 

Вот тут ошибка:
>$t_date_begin = $date_begin[2] . '-' . $date_begin[1] . '-' . $date_begin[0] . '00:00:00';
и тут тоже:
>$m_date_begin = mktime( 0,0,0,$date_begin[0],$date_begin[1],$date_begin[2]);

  Ответить  
 
 автор: eli   (27.04.2010 в 23:37)   письмо автору
 
   для: eli   (27.04.2010 в 23:25)
 

Тут понятно пробельчик забыл

$t_date_begin = $date_begin[2] . '-' . $date_begin[1] . '-' . $date_begin[0] . ' 00:00:00';
$t_date_begin = $date_begin[2] . '-' . $date_begin[1] . '-' . $date_begin[0] . ' 00:00:00';


а вот что во втором случае неправильно?

  Ответить  
 
 автор: Trianon   (27.04.2010 в 23:38)   письмо автору
 
   для: eli   (27.04.2010 в 23:37)
 

1.Какой смысл в двух одинаковых операторах присваивания?

2. порядок аргументов функции

  Ответить  
 
 автор: eli   (27.04.2010 в 23:46)   письмо автору
 
   для: Trianon   (27.04.2010 в 23:38)
 

1. а ну да, очепятка, но тут по логике понятно что должен быть end
2. согласен, но по моему логично все же было бы в том порядке, что я написал

  Ответить  
 
 автор: Zhora_88   (28.04.2010 в 15:21)   письмо автору
 
   для: eli   (27.04.2010 в 23:46)
 

От я ЛОПУХ.... блин, просто нехватило фантазии))) .....только я поменял

$t_date_begin = $date_begin[2] . '-' . $date_begin[1] . '-' . $date_begin[0] . ' 00:00:00';
$t_date_end = $date_end[2] . '-' . $date_end[1] . '-' . $date_end[0] . ' 23:59:59';

чтобы искало все в течении суток, если выбрать одинаковые даты начала и конца. хотя можна и так, как было.))
Спасибо большое всем!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования