<MyRusakov.ru />

Фреймворк Yii 2.0 с нуля. Пример создания сайта

Фреймворк Yii 2.0 с нуля. Пример создания сайта

Видеокурс "Фреймворк Yii 2.0 с нуля. Пример создания сайта" обучит Вас созданию профессиональных сайтов с использованием фреймворка Yii. В курсе есть 2 раздела: теоретический и практический. В теоретическом разделе будут разобраны возможности фреймворка Yii с примерами их использования, а в практической части будет создан сайт Blog.MyRusakov.ru с помощью полученных знаний из теоретического раздела.

Так же почти ко всем урокам идут упражнения для закрепления материала из урока на практике.

После прохождения курса Вы без труда сможете создавать любые сайты с использованием фреймворка Yii, причём делать это будете быстро и качественно.

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Форум сайта MyRusakov.ru

Преобразование mysql даты в русский формат
21.04.2013 12:53:29 Преобразование mysql даты в русский формат Сообщение #1
ksyushenka

ksyushenka

Новичок

Новичок

Дата регистрации:
21.04.2013 12:42:00

Сообщений: 1

Михаил, подскажите как Вы на своем блоге реализовали вывод даты на русском?
Думала решить вопрос таким образом:


function rusDate($date=false,$format=1) {
if (!$date) {
$date = date('Y-m-d');
}
$tmp = explode('-',$date);
$day = $tmp[2];
$month = $tmp[1];
$year = $tmp[0];
$months = array('','Января','Февраля','Марта','Апреля','Мая', 'Июня','Июля','Августа','Сентября','Октября','Ноября','Декабря');
$months_s = array('','Январь','Февраль','Март','Апрель','Май', 'Июнь','Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь');
if ($format==1) {
return $day."&nbsp;".$months[$month].'&nbsp;'.$year.'&nbsp;г.';
} elseif ($format==2) {
return $day."&nbsp;".$months[$month];
} elseif ($format==3) {
return $months_s[$month].' '.$year.' г.';
}
}



но, увы(((

Профиль Ответить
21.04.2013 14:19:09 Преобразование mysql даты в русский формат Сообщение #2
fabrigas201

fabrigas201

Продвинутый

Продвинутый

Дата регистрации:
20.01.2012 13:08:31

Сообщений: 59

Ну во первых пользуйтесь подцветкой синтаксиса,
читать не удобно. Во вторых попробуйте это.

function mysql_russian_date($datestr = ''){
if ($datestr == '')
return '';
// получаем значение даты и времени
list($day) = explode(' ', $datestr);
switch( $day ){
// Если дата совпадает с сегодняшней
case date('Y-m-d'):
$result = 'Сегодня';
break;
//Если дата совпадает со вчерашней
case date( 'Y-m-d', mktime(0, 0, 0, date("m", date("d"-1, date("Y") ):
$result = 'Вчера';
break;
default:{
// Разделяем отображение даты на составляющие
list($y, $m, $d) = explode('-', $day);
$month_str = array(
'января', 'февраля', 'марта',
'апреля', 'мая', 'июня',
'июля', 'августа', 'сентября',
'октября', 'ноября', 'декабря'
);
$month_int = array(
'01', '02', '03',
'04', '05', '06',
'07', '08', '09',
'10', '11', '12'
);

// Замена числового обозначения месяца на словесное (склоненное в падеже)
$m = str_replace($month_int, $month_str, $m);
// Формирование окончательного результата
if ($d[0] == 0) $d = $d[1];
$result = $d.' '.$m.' '.$y;
}
}
return $result;
}

Пять минут поиска в гугле.
Профиль Ответить
14.05.2013 05:03:14 Преобразование mysql даты в русский формат Сообщение #3
Nikita

Nikita

Освоившийся

Освоившийся

Дата регистрации:
06.06.2012 22:12:07

Сообщений: 36

А КАК ПРИМЕНИТЬ ЭТУ ФУНКЦИЮ К MYSQL?
Профиль Ответить
14.05.2013 09:06:38 Преобразование mysql даты в русский формат Сообщение #4
fabrigas201

fabrigas201

Продвинутый

Продвинутый

Дата регистрации:
20.01.2012 13:08:31

Сообщений: 59

если дата приходит вида $date = 2013-05-14,
то прогоняем дату через функцию mysql_russian_date($date). На выходе должно получиться 14 мая 2013.
Профиль Ответить
14.05.2013 14:24:29 Преобразование mysql даты в русский формат Сообщение #5
Nikita

Nikita

Освоившийся

Освоившийся

Дата регистрации:
06.06.2012 22:12:07

Сообщений: 36

Ошибка - Fatal error: Cannot redeclare mysql_russian_date() (previously declared in v:\home
Профиль Ответить
14.05.2013 14:33:44 Преобразование mysql даты в русский формат Сообщение #6
fabrigas201

fabrigas201

Продвинутый

Продвинутый

Дата регистрации:
20.01.2012 13:08:31

Сообщений: 59

это значит что функцию невозможно переопределить, назовите ее по другому.
Профиль Ответить
14.05.2013 14:35:12 Преобразование mysql даты в русский формат Сообщение #7
Nikita

Nikita

Освоившийся

Освоившийся

Дата регистрации:
06.06.2012 22:12:07

Сообщений: 36

Что я делаю не так?

$result_all_users = mysql_query("SELECT id,name,surname,date FROM demka ORDER BY id DESC",$db);
$myrow_all_users = mysql_fetch_array($result_all_users);

do {

$date = $myrow_all_users['date'];

function mysql_russian_date($date = ''){
if ($date == '')
return '';
// получаем значение даты и времени
list($day) = explode(' ', $date);
switch( $day ){
// Если дата совпадает с сегодняшней
case date('Y-m-d'):
$result = 'Сегодня';
break;
//Если дата совпадает со вчерашней
case date( 'Y-m-d', mktime(0, 0, 0, date("m", date("d"-1, date("Y") ):
$result = 'Вчера';
break;
default:{
// Разделяем отображение даты на составляющие
list($y, $m, $d) = explode('-', $day);
$month_str = array(
'января', 'февраля', 'марта',
'апреля', 'мая', 'июня',
'июля', 'августа', 'сентября',
'октября', 'ноября', 'декабря'
);
$month_int = array(
'01', '02', '03',
'04', '05', '06',
'07', '08', '09',
'10', '11', '12'
);

// Замена числового обозначения месяца на словесное (склоненное в падеже)
$m = str_replace($month_int, $month_str, $m);
// Формирование окончательного результата
if ($d[0] == 0) $d = $d[1];
$result = $d.' '.$m.' '.$y;
}
}
return $result;
}


printf("<div style='width: 400px; border: 1px solid #DDDDDD; color: #333; padding: 10px;'>
<a href='http://counter-strike.ua/user.php?id=%s'>%s %s</a>
<p>Дата: %s</p>
</div><br>",$myrow_all_users['id'],$myrow_all_users['name'],$myrow_all_users['surname'],$result);
}

while($myrow_all_users = mysql_fetch_array($result_all_users));
Профиль Ответить
14.05.2013 14:47:48 Преобразование mysql даты в русский формат Сообщение #8
fabrigas201

fabrigas201

Продвинутый

Продвинутый

Дата регистрации:
20.01.2012 13:08:31

Сообщений: 59

Попрбуйте вот так, код я не проверял.


$result_all_users = mysql_query("SELECT `id`,`name`,`surname`,`date` FROM `demka` ORDER BY `id` DESC",$db);


function mysql_russian_date($date = ''){
if ($date == '')
return '';
// получаем значение даты и времени
list($day) = explode(' ', $date);
switch( $day ){
// Если дата совпадает с сегодняшней
case date('Y-m-d'):
$result = 'Сегодня';
break;
//Если дата совпадает со вчерашней
case date( 'Y-m-d', mktime(0, 0, 0, date("m", date("d"-1, date("Y") ):
$result = 'Вчера';
break;
default:{
// Разделяем отображение даты на составляющие
list($y, $m, $d) = explode('-', $day);
$month_str = array(
'января', 'февраля', 'марта',
'апреля', 'мая', 'июня',
'июля', 'августа', 'сентября',
'октября', 'ноября', 'декабря'
);
$month_int = array(
'01', '02', '03',
'04', '05', '06',
'07', '08', '09',
'10', '11', '12'
);

// Замена числового обозначения месяца на словесное (склоненное в падеже)
$m = str_replace($month_int, $month_str, $m);
// Формирование окончательного результата
if ($d[0] == 0) $d = $d[1];
$result = $d.' '.$m.' '.$y;
}
}
return $result;
}




while($row = mysql_fetch_assoc($result_all_users)){
printf("<div style='width: 400px; border: 1px solid #DDDDDD; color: #333; padding: 10px;'>
<a href='http://counter-strike.ua/user.php?id=%s'>%s %s</a>
<p>Дата: %s</p>
</div><br>",$row['id'],$row['name'],$row['surname'],mysql_russian_date($row['date']));
}


Вы использовали функции внутри цикла, это не нужно. Функцию нужно писать отдельно, а вызывать можно в цикле. И я использую цикл while вместо do-while, и вам рекомендую его использовать.
Профиль Ответить
14.05.2013 14:55:33 Преобразование mysql даты в русский формат Сообщение #9
Nikita

Nikita

Освоившийся

Освоившийся

Дата регистрации:
06.06.2012 22:12:07

Сообщений: 36

СПАСИБО БОЛЬШОЕ, ВСЕ РАБОТАЕТ!))) У ВАС НАВЕРНОЕ БОЛЬШОЙ ОПЫТ ПРОГРАММИРОВАНИЕ НА ПХП?
Профиль Ответить