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

Форум PHP

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

 

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

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

тема: Точное время
 
 автор: SnooPI   (13.04.2007 в 16:28)   письмо автору
 
 

Здравствуйте :0
Вообщем в боте у меня есть время аптайма...те.. это сколько минут/часов бот уже сидит в сети(запущен)

$time = ((time() - $uptime) / 60);

$uptime - это время запуска бота вроде :)

так вот......Этот код он показывает плохо....
Я тут сделал / 60 это как бы он показывает минуты, но он показыывает вот так:
5.566666667 минут

Я хочу сделать так, чтобы он показывал не так , а например 5 минут
А если минут больше 60, то говорил 1час и 5 минут
И чтобы язык нормальный произносил
Не "1 минут" , не "2минут" , не "2 час"
А по-русски:)
1 минутА, 2 минутЫ, 5 минуТ, 1 час 25 минут, 2часА 2 минутЫ, 5 часОВ

+)Спасибо

   
 
 автор: sms-send   (13.04.2007 в 17:54)   письмо автору
 
   для: SnooPI   (13.04.2007 в 16:28)
 

<?php
function padezh($int){
    if((
$n=substr($int,-1))>=5&&$n<=10||$n==0||$int>=10&&$int<=20)return 2;
    if(
$n>=2&&$n<=4)return 1;
    return 
0;
}
$time=(time()-$uptime)/60;
$mins=$time%60;
$hours=floor($time/60);
$s_time='';
if(
$hours>0){
    
$end=array('','а','ов');
    
$s_time.=$hours.' час'.$end[padezh($hours)].' ';
}
$end=array('а','ы','');
$s_time.=$mins.' минут'.$end[padezh($mins)];
echo 
$s_time;

?>

   
 
 автор: SnooPI   (13.04.2007 в 18:33)   письмо автору
 
   для: sms-send   (13.04.2007 в 17:54)
 

Работает, но как-то криво...
Бот вылетает из сети если аптайм больше 0, а язапрашиваю инфу аптайма :(
Эх...что-то плозое в коде

   
 
 автор: SnooPI   (13.04.2007 в 19:48)   письмо автору
 
   для: SnooPI   (13.04.2007 в 18:33)
 

А если быть точнее, то бот вылетает если я второй раз напишу команду .uptime ....
Интересно в чем ошибка

   
 
 автор: XPraptor   (14.04.2007 в 01:32)   письмо автору
 
   для: SnooPI   (13.04.2007 в 19:48)
 

Что вам мешает использовать нормальную функцию date("формат который вам нужен", time())?
А если у вас PHP5.1 то еще ко всему и date_default_timezone_set("имя зоны").

   
 
 автор: SnooPI   (16.04.2007 в 13:03)   письмо автору
 
   для: XPraptor   (14.04.2007 в 01:32)
 

sms-send , ваша функция работает, но если её попробовать запустить второй раз, то бот выключается т.е. что-то с функцией...

   
 
 автор: SnooPI   (17.04.2007 в 01:30)   письмо автору
 
   для: SnooPI   (16.04.2007 в 13:03)
 

Что делать?:(

   
 
 автор: SnooPI   (17.04.2007 в 15:31)   письмо автору
 
   для: SnooPI   (17.04.2007 в 01:30)
 

Ответьте пожалуйста...
Как убрать лишние знаки после запятой..если у меня вот так:
242,43333333 минут =(

   
 
 автор: cheops   (17.04.2007 в 16:27)   письмо автору
 
   для: SnooPI   (17.04.2007 в 15:31)
 

Можно поступить следующим образом
<?php 
  $var 
242.43333333
  echo 
sprintf("%.2f"$var);
?>

   
 
 автор: SnooPI   (17.04.2007 в 17:28)   письмо автору
 
   для: cheops   (17.04.2007 в 16:27)
 

В вашем случае он выводит такое:
242.43

   
 
 автор: cheops   (18.04.2007 в 13:37)   письмо автору
 
   для: SnooPI   (17.04.2007 в 17:28)
 

А как требуется?

   
 
 автор: SnooPI   (18.04.2007 в 19:49)   письмо автору
 
   для: cheops   (18.04.2007 в 13:37)
 

Мне хочется чтобы было так как указал sms-send, но в его функции где-то ошибка...Если 1 раз вызвать функцию - норм покажет аптайт , а если вызвать второй раз, то бот выключается...что-то странное
Вообщем чтобы ыбли ыелые числа и с нормальными окончаниямию....1 час 5 минут, 50 мину, 5 часов 45 минут

   
 
 автор: Trianon   (18.04.2007 в 20:03)   письмо автору
 
   для: SnooPI   (18.04.2007 в 19:49)
 

Простите за любопытство, а зачем Вам такой гламур - на uttime?
я про часы минуты падежи и пр.

   
 
 автор: SnooPI   (18.04.2007 в 20:03)   письмо автору
 
   для: Trianon   (18.04.2007 в 20:03)
 

Ой, та функция уже норм рабоатет...просто функцию падежа убрал из цикла..

   
Rambler's Top100
вверх

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