Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Дата по русски в PHP

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Решил создать функцию для простановки руссифицированной даты и поделится скриптом.
Friendly Man
Отправлено: 20 Марта, 2010 - 11:55:02
Post Id



Новичок


Покинул форум
Сообщений всего: 47
Дата рег-ции: Апр. 2009  
Откуда: Россия - Армения, Москва-Ереван


Помог: 0 раз(а)




Вот сидел ночью и от делать нечего придумал функцию которая отображает русифицированную дату. Понимаю ерунда по сложности но мне приятноУлыбка Юзайте на здоровье Уважаемые форумчане. Жду Ваших злых и добрых комментариев по данной функции:

PHP:
скопировать код в буфер обмена
  1.  
  2. function date_ru() {
  3.    
  4.     $day=date("d");
  5.     $month_en=date("F");
  6.     $year=date("Y");
  7.     $days_of_week_en=date("l");
  8.     $month_ru=array(
  9.       'January'=>'января',
  10.       'February'=>'февраля',
  11.       'March'=>'марта',
  12.       'April'=>'апреля',
  13.       'May'=>'мая',
  14.       'June'=>'июня',
  15.       'July'=>'июля',
  16.       'August'=>'августа',
  17.       'September'=>'сентября',
  18.       'October'=>'октября',
  19.       'November'=>'ноября',
  20.       'December'=>'декабря',
  21.     );
  22.     $days_of_week_ru=array(
  23.       'Monday'=>'Понедельник',
  24.       'Tuesday'=>'Вторник',
  25.       'Wednesday'=>'Среда',
  26.       'Thursday'=>'Четверг',
  27.       'Friday'=>'Пятница',
  28.       'Saturday'=>'Суббота',
  29.       'Sunday'=>'Воскресенье',
  30.     );
  31.     $month=$month_ru[$month_en];
  32.     $days_of_week=$days_of_week_ru[$days_of_week_en];
  33.     $date="$days_of_week, $day $month $year года";
  34.     return $date;
  35. }
  36.  
  37.  


-----
ПОТЕРЯВ_СТРАХ_К_СМЕРТИ_МЫ_ОБРЕТАЕМ_ВЕЧНУЮ_ЖИЗНЬ... и голову без мозгов))))
 
My status
 Top
jfr
Отправлено: 21 Марта, 2010 - 19:38:00
Post Id



Посетитель


Покинул форум
Сообщений всего: 332
Дата рег-ции: Март 2010  
Откуда: Таджикистан, Худжанд


Помог: 0 раз(а)

[+]


почему злые комментарии, хорошо продуманная функция у тебя, я считаю.
 
 Top
allforweb
Отправлено: 08 Октября, 2010 - 21:13:18
Post Id


Гость


Покинул форум
Сообщений всего: 108
Дата рег-ции: Сент. 2010  


Помог: 0 раз(а)




А как правильно вызвать эту функцию в форме?
 
 Top
Ch_chov
Отправлено: 09 Октября, 2010 - 07:37:29
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




Friendly Man пишет:
от делать нечего придумал функцию которая отображает русифицированную дату

Такие функции можно отнести к разряду типовых задач, поэтому сначала можно поискать готовое решение.
http://yandex[dot]ru/yandsearch?clid[dot][dot].php&lr=11164
 
 Top
XelaNimed
Отправлено: 11 Октября, 2010 - 14:41:50
Post Id


Частый гость


Покинул форум
Сообщений всего: 136
Дата рег-ции: Сент. 2009  


Помог: 0 раз(а)




Friendly Man пишет:
Жду Ваших ... комментариев

извините за мои 3 копейки, но было бы неплохо, если бы функция возвращала не готовую дату, а массив. Ну и как необязательный параметр могла бы принимать дату в Unixtimestamp. Удобней, как мне кажется, было бы использовать.

PHP:
скопировать код в буфер обмена
  1. function date_ru($timestamp = false) {
  2.    
  3.     $day=(($timestamp === false)?date("d"):date("d",$timestamp));
  4.     $month_en=(($timestamp === false)?date("F"):date("F",$timestamp));
  5.     $year=(($timestamp === false)?date("Y"):date("Y",$timestamp));
  6.     $days_of_week_en=(($timestamp === false)?date("l"):date("l",$timestamp));
  7.     $month_ru=array(
  8.       'January'=>'января', ...
  9.     );
  10.     $days_of_week_ru=array(
  11.       'Monday'=>'Понедельник',...
  12.     );
  13.     $month=$month_ru[$month_en];
  14.     $days_of_week=$days_of_week_ru[$days_of_week_en];
  15.  
  16.     $date['day'] = $day;
  17.     $date['day_w'] = $days_of_week;
  18.     $date['month'] = $month;
  19.     $date['year'] = $year;
  20.  
  21.     return $date;
  22. }


Еще раз извиняюсь...
 
 Top
Champion Супермодератор
Отправлено: 11 Октября, 2010 - 20:18:16
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




XelaNimed пишет:
но было бы неплохо, если бы функция возвращала не готовую дату, а массив.
Да, возможно. Пользователь сам может определить в какое место ему вставлять какую часть даты.
И еще неплохо было бы заменить несколько вызовов date на один:
$m = date('m');
$y = date('y');
на
list($m, $y) = explode('-', date('m y'));
 
 Top
zardoz
Отправлено: 12 Октября, 2010 - 01:54:20
Post Id


Гость


Покинул форум
Сообщений всего: 100
Дата рег-ции: Сент. 2010  


Помог: 0 раз(а)




А проще/быстрее будет вытягивать название месяца и дня недели не через англ. наименование (ключ-значение), а через порядковый номер дня недели от 0 (воскресенье) до 6 (суббота) и номер месяца ?

С уважением.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB