|
|
|
| ..
подскажите как попроще сделать:
есть таймстамп, его нужно вывести следущим образом:
если например минут меньше чем 60 пишем - столько-то минут.
если же часов меньше 24 пишем - столько-то часов и столько-то минут.
ну и подобным образом выводить дни,месяцы. | |
|
|
|
|
|
|
|
для: sl1p
(09.10.2008 в 02:11)
| | ^ | |
|
|
|
|
|
|
|
для: sl1p
(09.10.2008 в 12:16)
| | ни у кого нет идей что-ли?( | |
|
|
|
|
|
|
|
для: sl1p
(11.10.2008 в 00:58)
| | Сначала кажется, что Вы хотите вывести по-особому промежуток времени или длительность чего-то, а потом, когда натыкаешься на слово "месяцы", то становится ясно, что понял не так. | |
|
|
|
|
|
|
|
для: BinLaden
(11.10.2008 в 01:30)
| | ну даже х3 как нормально объяснить..
ну вот например что я делаю:
это нужно при бане пользователя.
я пишу в базу таймстамп когда забанили
и таймстамп + время бана
так вот мне нужно как-то выводить оставшееся время бана.
чтото нв вроде: 1час 40мин 30сек
но как это реализовать ума не приложу.
и было бы круто както не пхп функцией а мб формулой чтоли какойто ибо нужно чтобы время обновлялось с помощью жс..:) | |
|
|
|
|
|
|
|
для: sl1p
(11.10.2008 в 04:31)
| | Время бана в каком формате? Оно тоже в базе данных находится? | |
|
|
|
|
|
|
|
для: cheops
(11.10.2008 в 14:57)
| | да всё в бд и таймстамп.. | |
|
|
|
|
|
|
|
для: sl1p
(11.10.2008 в 04:31)
| | ну так а в чем проблема? пишешь время бана в одну ячейку - в другу - время РАЗбана - потом отнимаешь и выводишь :) или тебе не ясно как таймстамп отнять от таймстамп ? | |
|
|
|
|
|
|
|
для: virtus1k
(11.10.2008 в 15:28)
| | 2 virtus1k: проблема автора в том, что нужно вывести количество месяцев (целое число) до определенной даты.
Теперь Вам понятно? | |
|
|
|
|
|
|
|
для: BinLaden
(11.10.2008 в 17:17)
| | Так это вроде не очень простой вопрос.
Функцию длинную писать придётся.
А если ещё и на JS чтоб тикало, так это повозиться придётся. | |
|
|
|
|
|
|
|
для: Eugene77
(11.10.2008 в 17:55)
| | Ну я ведь попросил помочь реализовать, а не говорить о том как это сложно.
Такое часто где-то видел(уже не помню где), значит возможно как-то:) | |
|
|
|
|
|
|
|
для: sl1p
(11.10.2008 в 19:10)
| | Если где-то видели, то хотя бы яву хорошо было бы здесь опубликовать. К ней уже проще дописать PHP. А так получается слишком объёмная задачка. Ну, если у кого-то время найдётся, то сделает. Я лично с таким объёмом кода проковыряюсь некий отрезок времени. Его у меня сейчас нет. Если бы вы сами часть уже написали, которую можете, то тогда проще было бы помочь доделать. | |
|
|
|
|
|
|
|
для: Eugene77
(11.10.2008 в 19:19)
| | Написал же что не помню.Я же не думал что пригодится)
зы.Мне то не трудно ковыряться, но я даже не знаю с чего подойти, вдруг начну велосипед делать) | |
|
|
|
|
|
|
|
для: sl1p
(11.10.2008 в 19:24)
| | Вот для первого шага функция нашлась (не моя), но выглядит красиво
<?
function CalcElapsedTime($time)
{
if(($time = (int) $time) === 0) return '0 cекунд';
$diff = $time;
$divs = array(60,60,24,365);
$ret = array();
$elements = array(
'years' => array(0,"год","года","лет"),
'days' => array(0,"день","дня","дней"),
'hrs' => array(0,"час","часа","часов"),
'mins' => array(0,"минута","минуты","минут"),
'secs' => array(0,"секунда","секунды","секунд"),
);
foreach($elements as $k => $v) {
$tmp = $diff;
foreach($divs as $div) $tmp /= $div;
if($elements[$k][0] = floor($tmp)) {
$ret[] = $elements[$k][0].' '.call_user_func_array('PluralForm',$elements[$k]);
$tmp = $elements[$k][0];
foreach($divs as $div) $tmp *= $div;
$diff -= $tmp;
}
$divs = array_slice($divs,0,-1);
}
return join(" ",$ret);
}
|
| |
|
|
|
|
|
|
|
для: Eugene77
(12.10.2008 в 20:05)
| | >Вот для первого шага функция нашлась (не моя), но выглядит красиво
Работает? (осторожно интересуется) | |
|
|
|
|
|
|
|
для: Eugene77
(12.10.2008 в 20:05)
| | Мне кажется, что там маленького кусочка не хватает.
<?php
function pluralForm($n, $form1, $form2, $form5) {
$n = abs($n) % 100;
$n1 = $n % 10;
if ($n > 10 && $n < 20) return $form5;
if ($n1 > 1 && $n1 < 5) return $form2;
if ($n1 == 1) return $form1;
return $form5;
}
|
Чего-то в этом духе. | |
|
|
|
|
|
|
|
для: Nemezis
(12.10.2008 в 21:06)
| | более точно
function pluralForm($n, $forms)
{
list($form0, $form1, $form2, $form5) = $forms;
//....
|
и далее по Вашему тексту.
Но дело даже не в этом.
Когда год принимают равным ровнехонько 365 суткам, а время пытаются показать с точностью до секунд, это вызывает омерзение. | |
|
|
|
|
|
|
|
для: Trianon
(12.10.2008 в 21:15)
| | >Когда год принимают равным ровнехонько 365 суткам, а время пытаются показать с точностью до секунд, это вызывает омерзение.
Не совсем понимаю вас. А скольким же суткам должен быть равен год?!
По идее в високосный год надо вносить поправку, но число суток должно оставаться целым...
Но функция вообще-то не для больших сроков: год в ней так - на всякий крайний случай. На год никто банить не будет.
[code]<?
function PluralForm($n, $form1, $form2, $form5)
{
$n = abs($n) % 100;
$n1 = $n % 10;
if($n > 10 && $n < 20) return $form5;
if($n1 > 1 && $n1 < 5) return $form2;
if($n1 == 1) return $form1;
return $form5;
} | |
|
|
|
|
|
|
|
для: Eugene77
(13.10.2008 в 18:09)
| | > Но функция вообще-то не для больших сроков: год в ней так - на всякий крайний случай. На год никто банить не будет.
Для Вас неприлично кидаться такими предположениями :( | |
|
|
|
|
|
|
|
для: Eugene77
(13.10.2008 в 18:09)
| | >>Когда год принимают равным ровнехонько 365 суткам, а время пытаются показать с точностью до секунд, это вызывает омерзение.
>
>Не совсем понимаю вас. А скольким же суткам должен быть равен год?!
Правило високосных лет вроде как в первом классе проходят... | |
|
|
|