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

Форум PHP

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

 

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

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

тема: работа с датой
 
 автор: dimm_kz   (03.06.2009 в 11:28)   письмо автору
 
 

Добрый день!
У меня в база создаются автоматически таблицы, содержащие в названии текущую дату. Стоит задача выборки данных из таблицы предыдущей даты. т.е. сегодня 03.06.2009, есть таблица 02.06.2009. Я ипользуя функцию date() выбераю сегодняшнее число. И вот тут самое веселое: если мне нужна предудущая дата, пишу:

$d = date("Ymd")-1;

тут все нормально, получаю: 20090602,
но если мне надо отматать дату на 5 дней назад, он приведет дату в такой вид: 20090598
как сделать так, что бы дата была нормального вида?

  Ответить  
 
 автор: Valick   (03.06.2009 в 11:37)   письмо автору
 
   для: dimm_kz   (03.06.2009 в 11:28)
 

зачем вам таблицы на каждый день???

как сделать так, что бы дата была нормального вида?
Учить MySQL, там с датой можно работать "как хошь"

например
ADDDATE(date,INTERVAL expr unit), ADDDATE(expr,days)

When invoked with the INTERVAL form of the second argument, ADDDATE() is a synonym for DATE_ADD(). The related function SUBDATE() is a synonym for DATE_SUB(). For information on the INTERVAL unit argument, see the discussion for DATE_ADD().

mysql> SELECT DATE_ADD('2008-01-02', INTERVAL 31 DAY);
-> '2008-02-02'
mysql> SELECT ADDDATE('2008-01-02', INTERVAL 31 DAY);
-> '2008-02-02'

When invoked with the days form of the second argument, MySQL treats it as an integer number of days to be added to expr.

mysql> SELECT ADDDATE('2008-01-02', 31);
-> '2008-02-02'

  Ответить  
 
 автор: dimm_kz   (03.06.2009 в 11:53)   письмо автору
 
   для: Valick   (03.06.2009 в 11:37)
 

так вот именно что мне это нужно на php. Базы создаются биллингом, туда валится статистика. мне все что там написано не нужно, и по этому нужно сделать выборку и записать в мою базу. А с датой касяк выходит...

  Ответить  
 
 автор: Valick   (03.06.2009 в 12:01)   письмо автору
 
   для: dimm_kz   (03.06.2009 в 11:53)
 

так вот именно что мне это нужно на php
Вы нашли способ работать с базой без SQL запроса???
$d_day="-1 DAY";
$query= "SELECT * FROM ADDDATE(CURDATE(), INTERVAL ".$d_day.")";

Попробуйте, а то мне проверить некогда

  Ответить  
 
 автор: dimm_kz   (03.06.2009 в 12:41)   письмо автору
 
   для: Valick   (03.06.2009 в 12:01)
 

сейчас стоит задача именно правильно сделать дату на php, для правельного определения иени таблицы

  Ответить  
 
 автор: Valick   (03.06.2009 в 13:07)   письмо автору
 
   для: dimm_kz   (03.06.2009 в 12:41)
 

не успел дописать второй вариант, модератор удалил пост... ну значит так тому и быть)

  Ответить  
 
 автор: Филин   (03.06.2009 в 22:04)   письмо автору
 
   для: Valick   (03.06.2009 в 13:07)
 

$day = date("Y-m-d",strtotime ("-5 day"));

  Ответить  
 
 автор: Филин   (03.06.2009 в 22:13)   письмо автору
 
   для: dimm_kz   (03.06.2009 в 11:28)
 

$day = date("Y-m-d",strtotime ("-5 day"));[code]

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

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