|
|
|
| Всем привет! Мне нужно сделать дату, определяющую скоко дней осталось до день варения сайта. Дата день рождения сайта постоянная. Ну вот есть у меня такой код но он определяет немного неправильно дату.(день рождения сайта 29 августа(год как понимаете не имеет значения))
Вот код:
<?
$date = date("До дня варенья сайта осталось m месяцев и d дней", mktime(0, 0, 0, 29, 8)-time());
echo $date;
?>
|
Жду ответа | |
|
|
|
|
|
|
|
для: Buhen
(08.09.2007 в 21:09)
| | Почему то при моем коде отображается что осталось 8 мес 31 день а должго быть 11мес с небольшим | |
|
|
|
|
|
|
|
для: Buhen
(08.09.2007 в 21:37)
| | Нужно 29 и 8 поменять местами!
mktime -- Возвращает метку времени для заданной даты
Description
int mktime ( [int hour [, int minute [, int second [, int month [, int day [, int year [, int is_dst]]]]]]] )
|
| |
|
|
|
|
|
|
|
для: Buhen
(08.09.2007 в 21:37)
| | после дня рождения этот код будет показывать ерунду. | |
|
|
|
|
|
|
|
для: Trianon
(08.09.2007 в 22:29)
| | Поэтому скорее всего придется или изменить код (добавить год) или ... идею! ;-) | |
|
|
|
|
|
|
|
для: ddhvvn
(08.09.2007 в 22:41)
| | mktime(0, 0, 0, 29, 8)-time()
заменить на
(365+mktime(0, 0, 0, $bd_month , $bd_mday)-time())%365
|
| |
|
|
|
|
|
|
|
для: Trianon
(08.09.2007 в 22:45)
| | Такой код не действует:
<?
$bd_month = 8;
$bd_mday = 29;
$date = date("До дня варенья сайта осталось m месяцев и d дней", (365+mktime(0, 0, 0, $bd_month , $bd_mday)-time())%365);
echo $date;
?>
|
| |
|
|
|
|
|
|
|
для: Buhen
(08.09.2007 в 23:49)
| | конечно.
Функция date не предназначена для вывода интервалов.
Только для вывода абсолютных моментов времени.
А .. ну да.. я тоже наврал.
но ход мысли понятен. | |
|
|
|
|
|
|
|
для: Trianon
(09.09.2007 в 00:02)
| | Что то я не понял почему у меня код не действует такой? может объясните что вы подразумеваете под
"А .. ну да.. я тоже наврал.
но ход мысли понятен." ? | |
|
|
|
|
|
|
|
для: Buhen
(09.09.2007 в 00:06)
| | найдите того , кто Вам сказал, что date("До дня варенья сайта осталось m месяцев и d дней", можно использовать в таком контексте. И сильно его стукните.
Так писать нельзя. Вообще.
Читайте документацию на date()
m - это не количество месяцев, а порядковый номер месяца.
d - это порядковое число дня в месяце , а не количество дней. | |
|
|
|
|
|
|
|
для: Trianon
(09.09.2007 в 00:10)
| | Дак я не понял как вывод то сделать? date("До дня варенья сайта осталось (тут что написать) месяцев и (тут что написать) дней", | |
|
|
|
|
|
|
|
для: Buhen
(09.09.2007 в 00:58)
| | Вы понимаете разницу между "9 сентября 2007 года " и " 182 дня до дня рождения"?
Первое значение - дата - абсолютный момент времени.
Второе значение - интервал времени.
Функция date предназначена для вывода дат.
Функция date не предназначена для вывода интервалов.
Она никогда не умела их выводить, и уметь не будет.
Так что ничего там не написать.
Хочется получить честный ответ - пишите алгоритм пересчета одной даты в другую. | |
|
|
|
|
|
|
|
для: Trianon
(09.09.2007 в 01:35)
| | Значит скрипт для моей темы не сделать? жаль | |
|
|
|
|
|
|
|
для: Buhen
(09.09.2007 в 01:42)
| | Скрипт сделать, конечно, можно.
Но только функцию, которая посчитает количество месяцев и дней, придется написать самому.
Ради интереса сейчас попробую набросать. | |
|
|
|
|
|
|
|
для: Trianon
(09.09.2007 в 01:59)
| |
<?
function to_bd($bd, $bm)
{
$ml = array(0, 31, 28, 31, 30, 31,30, 31, 31, 30, 31, 30, 31);
list($cd, $cm, $cy) = explode('/', date('d/m/Y'));
$cd = intval($cd); $cm = intval($cm); $cy = intval($cy);
$bd = intval($bd); $bm = intval($bm);
$nm = $nd = 0;
if($cd <= $bd && $cm == $bm)
{ $nd = $bd - $cd; $cd = $bd; }
else
{
$nd = $bd - $cd;
if($cd > $bd)
{
$nm = -1;
$nd = $ml[$cm]+ (($cm == 2) & !($cy &3))-$cd+$bd;
$cd = $bd;
}
$nm += ($bm-$cm+12)%12;
}
return "From today to birthday total of $nm months $nd days";
}
print to_bd(8,3);
?>
|
| |
|
|
|
|
|
|
|
для: Trianon
(09.09.2007 в 02:39)
| | Большое спасибо! Я даже такой скрипт бы не написал! Огромое спасибо!
1 вопросик если можно: Вы откладывате хоть скрипты для себя которые делаете для других? | |
|
|
|
|
|
|
|
для: Buhen
(09.09.2007 в 03:29)
| | > Вы откладывате хоть скрипты для себя которые делаете для других?
Которые здесь? Крайне редко.
Один случай помню. Самый длинный (по времени) скрипт, мною здесь выданный, если не ошибаюсь, разбирал анимированный GIF. Вот тут: http://softtime.ru/forum/read.php?id_forum=1&id_theme=13137
Делал я его часа три, или около того.
Вот его - сохранил.
Кстати, поиск здесь занял 10 секунд. Так что смысл хранить у себя - невелик. | |
|
|
|