Подскажите, пожалуйста, вот у меня есть дата 2010-11-10, и таких у меня несколько. Мне на сайте по дизайну нужно выводить эти даты в формате СР 10 или если 2010-11-12 то Пт 12 . Подскажите как преобразовывать даты, которые у меня в бд, в соответствие с их реальными значениями? Единственное запрос к бд я уже использую вот такой Код (Text): SELECT DATE(date), title, id, short_story FROM `post` WHERE approve=1 and date > '$allDate' and date < '$allDate1' ORDER BY date DESC
PHP: <?php function myDate($mDate = '') { if(empty($mDate)) $mDate = date('Y-m-d'); $date = explode('-', $mDate); $time = mktime(0, 0, 1, (int) $date[1], (int) $date[2], (int) $date[0]); $days = array( 0 => 'Вск', 1 => 'Пн', 2 => 'Вт', 3 => 'Ср', 4 => 'Чт', 5 => 'Пт', 6 => 'Сб' ); return($days[(date('w', $time))] . ' ' . $date[2]); } echo(myDate('2010-12-12')); ?>
PHP: <?php function rudate($format, $timestamp = NULL) { $en = array( "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"); $ru = array( "Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота", "Воскресенье", "Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь", "Января", "Февраля", "Марта", "Апреля", "Мая", "Июня", "Июля", "Августа", "Сентября", "Октября", "Ноября", "Декабря", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб", "Вс"); if(is_null($timestamp)) $timestamp = time(); $date = date($format, $timestamp); return str_replace($en, $ru, $date); } ?>
Devzirom 1. Никаких array_values не нужно - это раз 2. Длинное название месяцев и короткое - различаются только второй частью (первые 3 буквы идентичны) 3. В функцию попадает формат даты, т.е мы заранее знаем, что мы можем вернуть Исходя из этого можно построить более сложный (в то же время более грамотный) алгоритм, не создавая кучу названий месяцев. Мы так же знаем, что название дней недели - это первые два согласных звука (ПоНедельник, ВТорник, СРеда, ЧеТверг, ...). Гласных в языке русском - 6. Это нужно учитывать при разборе (используя кратность). Это так, по теме отписываюсь. Люблю сложные лингвистические анализы.
Функция str_replace вначале заменяет элементы с первого по последний - это особый порядок, а не как попало. Порядок замены: длинные названия дней недели длинные названия месяцев короткие названия месяцев * короткие названия дней недели * - замена на родительный падеж В функции есть один баг с месяцем May... Используя функцию, мы не когда не получим слово "Мая", т.к. замена на "Май" произойдет раньше. Но это можно решить, небольшим регулярным выражением
Блин, напиши рабочую функцию сам! Покажи мастер класс! И я скажу, что я говно, и моё место в ветке "Программирование на PHP для новичков"
Каждый сам определяет своё место =)) Но у нас речь не о том, кто говно и кому где место, верно? У нас речь о том, КАК можно подойти к решению задачи не простым перебором, а как-то более грамотно, красиво, так сказать =] Лично меня всегда интересовал математический подход к лингвистике в программировании, а почему бы и нет? И не хочу я писать, я хочу похоливарить на эту тему)
все не читал, но вроде бы то что надо PHP: <?php $aliases = array( "Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Голова болит", "Воскресенье" ); echo $aliases[date("L")];
Padaboo Не-не, тут речь о том, что пользователь передаёт свой формат даты, а на выходе получает перевод. ДЛЯ МЕНЯ наиболее грамотно распарсить параметр [format] и подставить заранее русские наименования.
=] Я тебе честно скажу, я в математике ноль. Больше предпочитаю традиционное программирование, без всяких там танцев с бубмом.[/list]
использовала код, который в самом начале от sobachnik, все работает. Спасибо и за другие примеры, думаю мне они пригодятся.