Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Дата (время, прошедшее с момента публикации), Сколько времени прошло после публикации 
:(
    Опции темы
Staser
Дата 26.4.2010, 00:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 15.7.2006

Репутация: нет
Всего: нет



Может, кто-нибудь знает какой класс для работы с датами на английском и русском языке?

Чтобы был результат, как в твиттере, те "1 секунду назад" или "17 часов и 35 минут назад", ну и так до года, хотябы.

Или ф-цию? На пхп.нет взял для английского, пока не стал переделывать, ввиду того, что нужно на 4 языках делать, может кто что подсказать?

Вроде в вордпрессе сделано, но я точно не знаю, спасибо!
PM MAIL   Вверх
skyboy
Дата 26.4.2010, 01:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



посчитать разницу в секундах между указанной датой/временем и текущей можешь?
выделить из разницы в секундах разницу в целых часах и минутах можешь?
а "словесное" выражение времени имеет те же правила в русском языке, что и для других вариантов сопряжения числительных с существительными(см. раздел "Склонение количественных числительных").

Добавлено через 3 минуты и 40 секунд
даже есть подробнее
PM MAIL   Вверх
Staser
Дата 26.4.2010, 02:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 15.7.2006

Репутация: нет
Всего: нет



Да я уже изобрёл свой велосипед, воот примерно так выглядит:
Код

        switch(true)
        {
            // Меньше 60 секунд
            case(strtotime('-1 min', $dateto) < $datefrom):
                $datediff = $difference;
                $dd = ($datediff>20) ? $datediff % 10 : $datediff;
                // А здесь вся магия
                switch(true) {
                                    case ($datediff==1): $res = $_lang['ago_1'].' '.$_lang['ago_second_1'].' '.$_lang['ago']; break;
                                    case ($dd==1): $res = $_lang['ago_1'].' '.$datediff.' '.$_lang['ago_second_1'].' '.$_lang['ago']; break;
                                    case ($dd>1 && $dd<5): $res = $_lang['ago_1'].' '.$datediff.' '.$_lang['ago_second_2'].' '.$_lang['ago']; break;
                                    case ($dd>4 && $dd<21): $res = $_lang['ago_1'].' '.$datediff.' '.$_lang['ago_second_3'].' '.$_lang['ago']; break;
                                }
                break;


Ну вот, и такое я повторяю для всех групп, чуть позже оптимизирую, и может выложу, если пригодится кому-то...

И да, переменные отсюда
Код

#Date
    'ago' => 'назад',
    'ago_1' => '', #Для латышской версии, выводится до даты
    'ago_long' => 'очень давно',
    'ago_second_1' => 'секунду',
    'ago_second_2' => 'секунды',
    'ago_second_3' => 'секунд',


Собственно, для всех языков пока действует.

Для читабельности можно переработать в fstr, но стоит ли...
PM MAIL   Вверх
sgrey
Дата 26.4.2010, 05:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 265
Регистрация: 15.4.2006

Репутация: 1
Всего: 4



в пхп полно функций по работе с данными, и не имеет значения на английском или китайском тебе это надо показать - там только форматирование самой даты отличается немного. начни отсюда http://php.net/manual/en/function.time.php
PM MAIL   Вверх
skyboy
Дата 26.4.2010, 08:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



sgrey, и эти функции смогут склонять слова "часы", "минуты", "месяцы"?
PM MAIL   Вверх
sgrey
Дата 26.4.2010, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 265
Регистрация: 15.4.2006

Репутация: 1
Всего: 4



Цитата(skyboy @  26.4.2010,  08:23 Найти цитируемый пост)
sgrey, и эти функции смогут склонять слова "часы", "минуты", "месяцы"? 

а я так понял ему нужно посчитать даты, а не просклонять smile
если вопрос только в склонениях, то то что вопрос решён smile
а ведь всё из-за невнимательности smile

Это сообщение отредактировал(а) sgrey - 26.4.2010, 18:13
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0591 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.