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

Показываем ВРЕМЯ создания заказа, и регистрацию клиентов.


tim21701

Recommended Posts

Подумал, что, было бы не плохо, показывать кроме даты - ещё и время; во сколько был сделан тот или иной заказ. (а так же, время регистрации пользователей) Всё оказалось на много прощё...

Открываем admin/languages/russian/russian.php и в строке

 

$_['date_format_short'] = 'd.m.Y';

Пишем свой формат вывода времени: (соглавно правилам)
 

$_['date_format_short'] = 'j F (l) Y - G:i:s';

Пример:
Изображение

 

  • +1 2
Надіслати
Поділитися на інших сайтах

  • 2 weeks later...

16.03.2011 (07:06)

Дня недели не хватает... ИМХО восприятие лучше становится.

Вот только, бьюсь с выводом русской даты...

:( пока никак
Надіслати
Поділитися на інших сайтах

Дня недели не хватает... ИМХО восприятие лучше становится.

Вот только, бьюсь с выводом русской даты... :( пока никак

Что подразумеваете под русской датой?
Надіслати
Поділитися на інших сайтах


Что подразумеваете под русской датой?

Название "Месяц" и "Дни недели" в PHP 5.3.6, 5.2.17 (да как и во всех остальных) выводятся на английском языке.

Изображение

Но в php есть возможность вывода даты на русском языке, вот, к примеру таким способом:

// название месяца на русском
function getRusMonth($month){
  if($month > 12 || $month < 1) return FALSE;
  $aMonth = array('января', 'февраля', 'марта', 'апреля', 'мая', 'июня', 'июля', 'августа', 'сентября', 'октября', 'ноября', 'декабря');
  return $aMonth[$month - 1];
}
Или таким:

function rudate($format, $timestamp = 0, $nominative_month = false)
{
if(!$timestamp) $timestamp = time();
elseif(!preg_match("/^[0-9]+$/", $timestamp)) $timestamp = strtotime($timestamp);

$F = $nominative_month ? array(1=>"Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь") : array(1=>"Января", "Февраля", "Марта", "Апреля", "Мая", "Июня", "Июля", "Августа", "Сентября", "Октября", "Ноября", "Декабря");
$M = array(1=>"Янв", "Фев", "Мар", "Апр", "Май", "Июн", "Июл", "Авг", "Сен", "Окт", "Ноя", "Дек");
$l = array("Воскресенье", "Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота");
$D = array("Вс", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб");

$format = str_replace("F", $F[date("n", $timestamp)], $format);
$format = str_replace("M", $M[date("n", $timestamp)], $format);
$format = str_replace("l", $l[date("w", $timestamp)], $format);
$format = str_replace("D", $D[date("w", $timestamp)], $format);

return date($format, $timestamp);
}

Осталось только "прикрутить" это в скрипты OpenCart...

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

  • 3 years later...

Понимаю, тема старая и возможно вопрос уже не актуален, но решения готового не нашел и пришлось его искать самому.
 
Возможно кому-то и пригодится.
 
Принцип на примере форматирования даты в отзывах к товарам (русская локализация). 
 
Итак, в файле: catalog\language\russian\russian.php.
 
Вставить в конце перед закрывающим ?>:
 

// Month
$_['month-01'] 	= ' января ';
$_['month-02'] 	= ' февраля ';
$_['month-03'] 	= ' марта ';
$_['month-04'] 	= ' апреля ';
$_['month-05'] 	= ' мая ';
$_['month-06'] 	= ' июня ';
$_['month-07'] 	= ' июля ';
$_['month-08'] 	= ' августа ';
$_['month-09'] 	= ' сентября ';
$_['month-10'] 	= ' октября ';
$_['month-11'] 	= ' ноября ';
$_['month-12'] 	= ' декабря ';

В файле: catalog\controller\product\product.php
 
В нашем случае ищем функцию формирующую значения 'date_added' (перменная $review['date_added'] отвечает за вывод даты написания отзыва). 
Вот нужный нам кусок кода:

foreach ($results as $result) {
	$this->data['reviews'][] = array(
		'author'     => $result['author'],
		'text'       => $result['text'],
		'rating'     => (int)$result['rating'],
		'reviews'    => sprintf($this->language->get('text_reviews'), (int)$review_total),
		'date_added' => date($this->language->get('date_format_short'), strtotime($result['date_added']))
	);
}

 
Меняем его на: 
 

foreach ($results as $result) {
        $int = date('m', strtotime($result['date_added'])); /* Получаем порядковый номер месяца */
	$this->data['reviews'][] = array(
		'author'     => $result['author'],
		'text'       => $result['text'],
		'rating'     => (int)$result['rating'],
		'reviews'    => sprintf($this->language->get('text_reviews'), (int)$review_total),
                'date_added' => date('d', strtotime($result['date_added'])).$this->language->get("month-$int").date('Y', strtotime($result['date_added'])).' г.' /* Формируем дату в требуемом формате */
	);
}	

 
Вуаля! На выводе получаем дату в формате:
 
31 декабря 2014 г.
 
P.S. При копировании не забываем удалять номера строк из кода.
 
P.P.S. Есно в языковом файле можно названия месяцев хоть на суахили написать.
 
~ Реализовано на ocStore 1.5.5.1.2 ~

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


No48, один нюанс - названия месяцев и все подобные данные могут понадобиться и в других местах.

поэтому добавлять их надо в главный языковой файл.

в вашем случае - catalog/language/russian/russian.php

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

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

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

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

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

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

Вхід

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

Вхід зараз

×
×
  • Створити...

Important Information

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