Перейти к содержимому



Некорректная работа оператора switch case

#1

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



Kuchuluk

Kuchuluk
  • Пользователь
  • 320 сообщений
  • Репутация: 5
0

Отправлено 08 Сентябрь 2014 - 14:37

В базе данных дата добавления статьи у меня хранится в виде 2014-04-16 23:35:23. Написал функцию для отображения ее в виде 16 июня 2014.

function createArticleDate ($date) {
	$da = explode(" ", $date);
		$pere = explode("-", $da[0]);
		switch ($pere[1]) {
		case 01:
			$x = "января";
			break;
		case 02:
			$x = "февраля";
			break;
		case 03:
			$x = "марта";
			break;
		case 04:
			$x = "апреля";
			break;
		case 05:
			$x = "мая";
			break;
		case 06:
			$x = "июня";
			break;
		case 07:
			$x = "июля";
			break;
		case 08:
			$x = "августа";
			break;
		case 09:
			$x = "сентября";
			break;
		case 10:
			$x = "октября";
			break;
		case 11:
			$x = "ноября";
			break;
		case 12:
			$x = "декабря";
			break;
		}
		$event = $pere[2] . " " . $x . " " . $pere[0];
		
		return $event;
 }

И дату эта функция выводит как надо, но только до августа. Начиная с августа дата выводится так 08 2014. То есть в переменную $x ничего не попадает. Проверял переменную $pere[1], в нее попадает число 08, но почему то в переменную $x попадает пустота.


 

 

Сообщение отредактировал Kuchuluk: 08 Сентябрь 2014 - 14:38

  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85
Советую обратить внимание на следующее:
  1. Switch case Ошибка. Непонятно в чем.
  2. Как выполнить несколько if-else операторов?
  3. Вопрос по .htaccess
  4. Создание собственной CMS
  5. Проблема с выводом своей валюты в магазине

#2

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



MelnikovXYZ

MelnikovXYZ
  • Неактивные
  • 2 сообщений
  • Репутация: 1

Отправлено 03 Октябрь 2014 - 19:29

Все потому, что числа, начинающиеся с 0 PHP воспринимает как 8ричные, поэтому 08 - некорректное число. Вам следует в ваших case'ах числа заключить в кавычки.


  • 1

#3

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



Ixman

Ixman
  • Пользователь PRO
  • 2 512 сообщений
  • Репутация: 589

Отправлено 04 Октябрь 2014 - 09:29

Kuchuluk, а не проще ли в базе хранить в UNIX формате, а уже использовать в скрипте через функцию date(); ? И база меньше и использовать можно в любом доступном виде 


  • 0



Оформление форума – IPBSkins.ru