Я пытаюсь:
setlocale(LC_ALL,"es_ES"); $string = "24/11/2014"; $date = DateTime::createFromFormat("d/m/Y", $string); echo $date->format("l");
И я получаю понедельник, что правильно, но мне нужно это на испанском языке, так что есть ли способ получить этот день на испанском?
На странице формата DateTime:
Этот метод не использует локали. Вся продукция на английском языке.
Если вам нужны локали, посмотрите в strftime Пример:
setlocale(LC_ALL,"es_ES"); $string = "24/11/2014"; $date = DateTime::createFromFormat("d/m/Y", $string); echo strftime("%A",$date->getTimestamp());
Я использую:
setlocale(LC_ALL, "es_ES", 'Spanish_Spain', 'Spanish'); echo iconv('ISO-8859-2', 'UTF-8', strftime("%A, %d de %B de %Y", strtotime($row['date'])));
или
setlocale(LC_ALL,"es_ES@euro","es_ES","esp");
оба работают. Я должен использовать iconv
чтобы избежать странных символов в акцентах, и я получаю этот результат:
domingo, 09 de octubre de 2016
использование
set_locale(LC_ALL,"es_ES@euro","es_ES","esp"); echo strftime("%A %d de %B del %Y");
или
function SpanishDate($FechaStamp) { $ano = date('Y',$FechaStamp); $mes = date('n',$FechaStamp); $dia = date('d',$FechaStamp); $diasemana = date('w',$FechaStamp); $diassemanaN= array("Domingo","Lunes","Martes","Miércoles", "Jueves","Viernes","Sábado"); $mesesN=array(1=>"Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio", "Agosto","Septiembre","Octubre","Noviembre","Diciembre"); return $diassemanaN[$diasemana].", $dia de ". $mesesN[$mes] ." de $ano"; }