Jump to content

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 2

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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/

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

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

 

:-)

Share this post


Link to post
Share on other sites

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

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

Edited by kate1987

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Similar Content

    • By buin
      В общем на сайте пока что 2 языка. Основной английский. В поисковиках только зарегился и не раскручивал, но не понимаю почему google индексирует только английскую часть сайта.
      В русском браузере firefox, сайт автоматически становится русским. В русской опере и хроме сайт выходит на англ. Тестировал на других компьютерах, никогда не заходивших на сайт.
      Локаль в русском языке прописана ru,ru_RU,ru_RU.UTF-8, на англ en_US.UTF-8,en_US,en-gb,english
      Вроде все правильно.
      opencart_v1.5.2.1
      Заранее спасибо за помощь.
  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.