|
|
|
| Скажем 31.12.11 в 12 00 мне надо вывести echo 'Поздравлем'; т-е как универсально определить, что это последний день месяца в точности до часов и минут?
Как идея пришла - сравнивать с 28 30 31 как месяцами и отдельно сравнивать с часами и минутами текущую дату... | |
|
|
|
|
|
|
|
для: OLi
(31.12.2011 в 19:17)
| | У функции date() есть специальный флаг t, который позволяет узнать сколько точно дней в месяце.
| |
|
|
|
|
|
|
|
для: cheops
(31.12.2011 в 19:21)
| | Т-е сравнивать как я и предложил? | |
|
|
|
|
|
|
|
для: OLi
(31.12.2011 в 19:23)
| | Да, только сравнивать не с 28, 30, 31, а при помощи условии date('t') == date('d') | |
|
|
|
|
|
|
|
для: cheops
(31.12.2011 в 19:24)
| | Да, понял. Спасибо | |
|
|
|
|
|
|
|
для: OLi
(31.12.2011 в 19:28)
| | Получается такое:
<?
$date_do=date("Y-m-d-h-i-s");
$exp_date=explode("-",$date_now);
if (date('t') == $exp_date[2] && $exp_date[3] == '12' && $exp_date[4]=='59' && $exp_date[5]=='59') {
$select_best_bitle=mysql_query("select * from `bon` WHERE start_time>=$date_ot AND start_time<=$date_do order by votes desc")
}
?>
|
Как мне по наступлению нового месяца узнать первое число предыдущего месяца, т-е вывести записи за месяц? | |
|
|
|
|
|
|
|
для: OLi
(31.12.2011 в 20:03)
| | Поле start_time в таблице bon у вас что из себя представляет? | |
|
|
|
|
|
|
|
для: cheops
(31.12.2011 в 20:06)
| |
| |
|
|
|
|
|
|
|
для: OLi
(31.12.2011 в 20:16)
| | А почему в таком формате? Если бы был нормальный календарный формат, можно было бы двумя условиями вывести данные за месяц, здесь, конечно, тоже можно извернуться, но работать будет скорее всего медленнее.
Я бы начал бы отталкиваться от функции mktime(), так как она оперирует отдельными компонентами, у вас всегда есть возможность отнять от месяца единицу, а день назначить на 1, чтобы получить начало предыдущего месяца. | |
|
|
|
|
|
|
|
для: cheops
(31.12.2011 в 20:25)
| | В каком тогда лучше формате хранить? в секундах? | |
|
|
|
|
|
|
|
для: OLi
(31.12.2011 в 20:29)
| | Можно и в DATETIME, можно в секундах. Да и этот формат в принципе нормален, только вам с mktime() придется много работать, более того, сначала формировать временную метку при помощи mktime(), а потом её форматировать при помощи date(). Ничего страшного, но несколько неудобно и чревато ошибками, тем более у mktime() американский формат - сначала месяц, потом день. | |
|
|
|