Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Функция для локализации даты


Recommended Posts

Здравствуйте дамы и господа, представляю вашему вниманию функцию, собранную специально для того, что бы получать адекватные даты, типа:
15 Марта 2015 или 15 Березня 2015, зависит от опций, которые добавите...

Сам код:

private function rel_date($danni = null, $lang = 'ukr') {
	// Переклад
if ($lang == 'ukr') {
	$translate = array(
		"am" => "до",
		"pm" => "по",
		"AM" => "ДО",
		"PM" => "ПО",
		"Monday" => "Понеділок",
		"Mon" => "Пн",
		"Tuesday" => "Вівторок",
		"Tue" => "Вт",
		"Wednesday" => "Середа",
		"Wed" => "Ср",
		"Thursday" => "Четвер",
		"Thu" => "Чт",
		"Friday" => "П\'ятница",
		"Fri" => "Пт",
		"Saturday" => "Субота",
		"Sat" => "Сб",
		"Sunday" => "Неділя",
		"Sun" => "Нж",
		"January" => "Січня",
		"Jan" => "Січ",
		"February" => "Лютого",
		"Feb" => "Лют",
		"March" => "Березня",
		"Mar" => "Бер",
		"April" => "Квітня",
		"Apr" => "Кві",
		"May" => "Травня",
		"May" => "Тра",
		"June" => "Червня",
		"Jun" => "Чер",
		"July" => "Липня",
		"Jul" => "Лип",
		"August" => "Серпня",
		"Aug" => "Сер",
		"September" => "Вересня",
		"Sep" => "Вер",
		"October" => "Жовтня",
		"Oct" => "Жов",
		"November" => "Листопада",
		"Nov" => "Лис",
		"December" => "Грудня",
		"Dec" => "Гру",
		"st" => "е",
		"nd" => "е",
		"rd" => "е",
		"th" => "е"
	);
} elseif ($lang == 'rus') {
	$translate = array(
		"am" => "дп",
		"pm" => "пп",
		"AM" => "ДП",
		"PM" => "ПП",
		"Monday" => "Понедельник",
		"Mon" => "Пн",
		"Tuesday" => "Вторник",
		"Tue" => "Вт",
		"Wednesday" => "Среда",
		"Wed" => "Ср",
		"Thursday" => "Четверг",
		"Thu" => "Чт",
		"Friday" => "Пятница",
		"Fri" => "Пт",
		"Saturday" => "Суббота",
		"Sat" => "Сб",
		"Sunday" => "Воскресенье",
		"Sun" => "Вс",
		"January" => "Января",
		"Jan" => "Янв",
		"February" => "Февраля",
		"Feb" => "Фев",
		"March" => "Марта",
		"Mar" => "Мар",
		"April" => "Апреля",
		"Apr" => "Апр",
		"May" => "Мая",
		"May" => "Мая",
		"June" => "Июня",
		"Jun" => "Июн",
		"July" => "Июля",
		"Jul" => "Июл",
		"August" => "Августа",
		"Aug" => "Авг",
		"September" => "Сентября",
		"Sep" => "Сен",
		"October" => "Октября",
		"Oct" => "Окт",
		"November" => "Ноября",
		"Nov" => "Ноя",
		"December" => "Декабря",
		"Dec" => "Дек",
		"st" => "ое",
		"nd" => "ое",
		"rd" => "е",
		"th" => "ое"
	);
}
// Якщо дата отримана, то обробляємо її
if ($danni != null) {
	$timestamp = strtotime($danni);
	return strtr(date("j F Y", $timestamp), $translate);
} else {
	// або виводимо поточну дату...
	return strtr(date("j F Y"), $translate);
	}
}

Инструкция:
$this->rel_date() - выведет текущую дату, например 15 Березня 2015 (украинский перевод по умолчанию)
$this->rel_date('2015-03-14', 'rus') - вывод заданной даты на русском //14 Марта 2015
$this->rel_date(null, 'rus') - вывод текущей даты на русском //15 Марта 2015
$this->rel_date('2015-03-14', 'ukr') - вывод указанной даты на украинском //14 Березня 2015

Практический пример (вывод даты в модуле новостей):

$this->data['news'][] = array(
	'title'        		=> $result['title'],
	'description'  		=> utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $chars) . '..',
	'href'         		=> $this->url->link('information/news', 'news_id=' . $result['news_id']),
	'thumb' 			=> $image,
	'posted'   			=> $this->rel_date($result['date_added'], 'ukr')
);
  • +1 3
Надіслати
Поділитися на інших сайтах

"am/pm" разве переводятся?..

after morning \ past morning - это уже на любителя, можно конечно расшифровать "до обеда и после", но, как говорится, кто как хочет - так перевод и перекрутит, я же дал инструмен, так как толкового решение Mr. Google мне не предоставил...

Надіслати
Поділитися на інших сайтах

  • 3 months later...

php отдает текстовые даты (месяцы, дни недели, итпд) только на английском.

добавить массив соответствий.

вот, Baco выкладывал код, который может помочь:

https://opencartforum.com/topic/45027-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F-%D0%B4%D0%BB%D1%8F-%D0%BB%D0%BE%D0%BA%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8-%D0%B4%D0%B0%D1%82%D1%8B/

Здравствуйте.

А куда код вставлять ?

 

:-)

Надіслати
Поділитися на інших сайтах


  • 8 months later...

Присоединяюсь) Куда код добавить, подскажите название файла? Добавила в контроллер нужного мне модуля (новости)

Вопрос - ли изменить глобально на всем сайте, мб я не в тот файл вставила код функции?

Змінено користувачем kate1987
Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.