Перейти к содержанию

Рекомендуемые сообщения

Здравствуйте дамы и господа, представляю вашему вниманию функцию, собранную специально для того, что бы получать адекватные даты, типа:
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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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/

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

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

 

:-)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Изменено пользователем kate1987

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Похожий контент

    • От 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
      Заранее спасибо за помощь.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.