Надо преобразовать текст в дату

Статус
В этой теме нельзя размещать новые ответы.
есть такая функция strtotime, которая преобразовывает дату в формат UNIX_TIMESTAMP. Так что не надо мудиться и резать строку на части.
Сделал так, потому что не знал доселе о существовании функции strtotime, теперь буду знать :)
Сейчас попробовал, с этой функцией остаётся только преобразовать русские названия месяцов ( у автора темы ) и далее уже можно преобразовать в unix time, потом обратно с date. :)
 
можно сделать ассоциативный массив и регуляркой искать по маске. к примеру за маску можно взять первые 3 буквы названия месяца
 
Вот написал небольшую функцию которая конвертирует русскую дату в unix time, авось кому-нибудь пригодится.

Немного изменил: прицепил декодировщик из unix в rus date
PHP:
function rus_unix($date, $decode = false) { 
    if(preg_match('/\b([0-9\ ])(.*)([\ 0-9])\b/i', $date) and $decode == false) 
    {
	$translation = array( 
      "Января" => "January", 
      "января" => "january", 
      "Февраля" => "February", 
      "февраля" => "february", 
      "Марта" => "March", 
      "марта" => "march", 
      "Апреля" => "April", 
      "апреля" => "april", 
      "Мая" => "May", 
      "мая" => "may", 
      "Июня" => "June", 
      "июня" => "june", 
      "Июля" => "July", 
      "июля" => "july", 
      "августа" => "August", 
      "Августа" => "august", 
      "Сентября" => "September", 
      "сентября" => "september", 
      "Октября" => "October", 
      "октября" => "october", 
      "Ноября" => "November", 
      "ноября" => "november", 
      "Декабря" => "December", 
      "декабря" => "december" 
      ); 
	  
    	$date1 = explode(" ",$date); 
		$date2 = $date1[1]; 
		$date3 = $translation[$date2]; 
		$date4 = $date1[0].' '.$date3.' '.$date1[2]; 
		return strtotime($date4);
    } 
	elseif(isset($date) and $decode == true) {
	
	$translation = array(
      "January" => "Января",
      "February" => "Февраля",
      "March" => "Марта",
      "April" => "Апреля",
      "May" => "Мая",
      "June" => "Июня",
      "July" => "Июля",
      "August" => "Августа",
      "September" => "Сентября",
      "October" => "Октября",
      "November" => "Ноября",
      "December" => "Декабря",
      );
	
	    $date1 = date("j F Y", $date);
		$date2 = explode(" ",$date1); 
		$date3 = $date2[1]; 
		$date4 = $translation[$date3]; 
		$date5 = $date2[0].' '.$date4.' '.$date2[2]; 
		return $date5;
	}
	else
	{
		return $date; 
    } 
} 
//Вызывать так 
echo rus_unix('2 августа 2009');
//Декодировать из unix time в русскую дату
echo rus_unix('1249135200', true);
 
Благодарствую. Довольно ценная инфа для начинающих.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху