| |
|
|
| | В общем есть в базе данных время в формате DATETIME. И надо посчитать сколько месяцев, дней, часов, минут, секунд осталось до этого времени. Чтобы примерно было так. Осталось: 2 дня 4 минуты 25 секунд | |
| |
|
|
| |
|
|
| |
для: winflip
(13.03.2008 в 17:17)
| | | актуально | |
| |
|
|
| |
|
|
| |
для: winflip
(13.03.2008 в 19:18)
| | | Цетирую Trianon :
"Берите из php линейную абсолютную метку времени планируемого события (mktime()) и передавайте её на клиентскую сторону - в JavaScript.
Все арифметические действия (тики, определение оставшегося интервала и пр.) вычисляйте в линейных единицах (секундах либо миллисекундах). Перед выводом - преобразуйте линейное время в человеческое представление ЧЧ:ММ:СС и т.д.
"
Но это не лучший вариант :)) по моему мнению для вашего случая. | |
| |
|
|
| |
|
|
| |
для: Fighter
(14.03.2008 в 19:03)
| | | В самый раз! | |
| |
|
|
| |
|
|
| |
для: winflip
(13.03.2008 в 17:17)
| | | Ну вот только с секундами... Потом делением и остатками можно остальное вывести...
<html><head><title>Функция "СКОЛЬКО ДНЕЙ ОСТАЛОСЬ ДО НОВОГО ГОДА?"</title><meta http-equiv="REFRESH" content="1"></head><body>
<?php
/*В параметре функции NewYear $d - "Год Нового года:))"*/
function NewYear($d){
$a = mktime(0,0,0,1,1,$d);
$b = strtotime("now");
$c = $a - $b;
return $c;
}
$e = NewYear(2009);
$f = $e * 1000;
$g = $f * 1000;
echo "До следующего Нового года осталось: $e секунд! И $f милисекунд!";
?></body></html>
|
| |
| |
|
|
| |
|
|
| |
для: grimweb
(15.03.2008 в 13:24)
| | | Да в секундах это легко, но всё равно я не понимаю как всё это осуществить в целом | |
| |
|
|
| |
автор: Wunderbar (16.03.2008 в 11:09) |
|
| |
для: winflip
(16.03.2008 в 10:53)
| | | Переведи в секунды (unix timestamp) так: SELECT UNIX_TIMESTAMP(`field_datetime`) FROM ..., где field_datetime - твоё поле. А там, вычитай из получившегося значения текущий timestamp (его получают функцией time() ).
Если значение отрицательное, то работы нет.
[поправлено модератором] | |
| |
|
|
| |
|
|
| |
для: Wunderbar
(16.03.2008 в 11:09)
| | | Да это я понимаю. Меня интересует, что дальше. | |
| |
|
|
| |
автор: Wunderbar (16.03.2008 в 11:57) |
|
| |
для: winflip
(16.03.2008 в 11:52)
| | | Я сейчас не понял. Ты дошёл до какого момента? Уже получил "Осталось 5 мин. 6 сек."? Тогда дальше можешь делать то, что желаешь нужным. Выводить это пользователю на экран, например. | |
| |
|
|
| |
|
|
| |
для: Wunderbar
(16.03.2008 в 11:57)
| | | я дошел до того что получил разницу в секундах с текущего момента до того что в таблице | |
| |
|
|
| |
|
|
| |
для: winflip
(18.03.2008 в 07:16)
| | | ну а вчем тогда проблема не знаете как из секунд получить часы? :) | |
| |
|
|
| |
|
|
| |
для: KPETuH
(18.03.2008 в 07:44)
| | | В том дело мне нужны не только часы, но и дни секунды, минуты, месяцы. То есть еслт 3672 секунды то 1 час 1 минута 12 сукунд!!!! | |
| |
|
|
| |
|
|
| |
для: winflip
(19.03.2008 в 21:14)
| | | а не 1 час 61 минута ... секунд | |
| |
|
|
| |
|
|
| |
для: winflip
(20.03.2008 в 07:11)
| | | Попробуй, так на вскидку написал, по идее тебе это подойдет
<?
$time=139320;
$day=floor($time/86400);
$hours=floor(($time/3600)-$day*24);
$min=floor(($time-$hours*3600-$day*86400)/60);
$sec=$time-($min*60+$hours*3600+$day*86400);
echo "Дни - $day : Часы - $hours : Минуты - $min : Секунды - $sec";
?>
|
Может не совсем удачно но черт с ним :) до месяцев и годов думаю сам допишешь :) | |
| |
|
|
| |
автор: Wunderbar (20.03.2008 в 15:02) |
|
| |
для: Fighter
(20.03.2008 в 14:22)
| | | > до месяцев и годов думаю сам допишешь
А слабо самому написать? Это и есть самое сложное, ибо количество дней в месяце не константа. | |
| |
|
|
| |
|
|
| |
для: Wunderbar
(20.03.2008 в 15:02)
| | | Ну как же.. ОЧ даже константа, на каждый месяц свое количество дней, а не случайное :))))) только февраль меняется и то раз в четыре года :) | |
| |
|
|
| |
автор: Wunderbar (21.03.2008 в 01:33) |
|
| |
для: Fighter
(20.03.2008 в 15:03)
| | | > ОЧ даже константа, на каждый месяц свое количество дней, а не случайное
Ах как всё просто. Ну приведи код, пожалуйста. | |
| |
|
|
| |
|
|
| |
для: Wunderbar
(21.03.2008 в 01:33)
| | | Вот код, прошу прощения за предыдущее высказывание, не так все просто оказалось, но все таки решаемо :) Как сделать проще пока не додумался, код далеко не идеален, как то можно сделать все проще и быстрее и короче, если додумаю как напишу. Пока тольлко это но работает. 3 часа мозг парил.
<?
$timeSQL=822269458;
$timeNOW=386954;
$time=$timeSQL-$timeNOW;
$day=floor($time/86400);
$hours=floor(($time/3600)-$day*24);
$min=floor(($time-$hours*3600-$day*86400)/60);
$sec=$time-($min*60+$hours*3600+$day*86400);
$month1=31;
$vesokosnyi=date("L");
if($vesokosnyi==1)
{
$month2=29;
}else {$month2=28;}
$month3=31;
$month4=30;
$month5=31;
$month6=30;
$month7=31;
$month8=31;
$month9=30;
$month10=31;
$month11=30;
$month12=31;
$day_now=date("j");
$month_now=date("n");
$year_now=date("Y");
$a='month';
$a.=$month_now;
$j=$day_now;
for($i=$day_now;$i<=$day;$i++)
{
$j++;
$ves=$year_now/4;
$ves=gettype($ves);
if($ves==integer)
{
$month2=29;
}else {$month2=28;}
if($j==$$a)
{
$month_all+=1;
$a='month';
$month_now+=1;
if($month_now>12){$month_now=1;$year_now+=1;}
$a.=$month_now;
$j=1;
}
}
$day_all=$j;
echo "Месяц - $month_all: День - $day_all : Час - $hours : Минута - $min : Секунда - $sec";
?>
|
Или вот еще вариант, только они показывют разное время :( бошка что то уже не варит..
Расчитываем немного подругому и попроще, помоему этот вариант правильнее и проще.
<?
$timeSQL=822269458;
$timeNOW=386954;
$time=$timeSQL-$timeNOW;
$date_now=date("Y-n-j-G-i-s");
$date_tooday=date("Y-n-j-G-i-s",time() + $time);
$date_now=explode("-",$date_now);
$date_tooday=explode("-",$date_tooday);
$years=$date_tooday["0"]-$date_now["0"];
if($date_now["1"]>$date_tooday["1"])
{
$month=$date_now["1"]-$date_tooday["1"];
}
else {$month=$date_tooday["1"]-$date_now["1"];}
if($date_now["2"]>$date_tooday["2"])
{
$day=$date_now["2"]-$date_tooday["2"];
}
else {$day=$date_tooday["2"]-$date_now["2"];}
if($date_now["3"]>$date_tooday["3"])
{
$hours=$date_now["3"]-$date_tooday["3"];
}
else {$hours=$date_tooday["3"]-$date_now["3"];}
if($date_now["4"]>$date_tooday["4"])
{
$min=$date_now["4"]-$date_tooday["4"];
}
else {$min=$date_tooday["4"]-$date_now["4"];}
if($date_now["5"]>$date_tooday["5"])
{
$sec=$date_now["5"]-$date_tooday["5"];
}
else {$sec=$date_tooday["5"]-$date_now["5"];}
echo "Годы - $years : Месяцы - $month: Дни - $day : Часы - $hours : Минуты- $min : Секунды - $sec ";
?>
|
| |
| |
|
|
| |
|
|
| |
для: Fighter
(21.03.2008 в 13:24)
| | | Проверка показала что 1 скрипт работает (вроде как) а 2 неудачный глючит :(
Помоему все таки хрень какая то получилась, помоему не правильно работает.. млин самому интересно как правильно то сделать. | |
| |
|
|