Con la poderosa clase DateTime no lleva mucho resolverlo...... recomiendo usarla......
Código PHP:
Ver original<?php
/*
@author: italico76
@parameter date in format 'aaaa-mm-dd hh:mm:ss' (DATETIME de SQL)
@return algo como "Jueves, 12 de Junio del 2014"
*/
function get_formated_date($date)
{
throw new Exception ("Fecha en formato invalido y <> de DATETIME");
$f = DateTime::createFromFormat('Y-m-d H:m:s', $date);
$errors = DateTime::getLastErrors();
$valid = ($errors['warning_count']==0 and $errors['error_count']==0);
if (!$valid)
throw new Exception ("Fecha en formato invalido y <> de DATETIME");
$dias['es'] = array("Domingo","Lunes","Martes","Miercoles","Jueves","Viernes","Sábado"); $dias['en'] = array("Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday");
$meses['es'] =
array("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"); $meses['en'] = array('January','February','March','April','May','June','July','August','September','October','November','December');
$out = $f->format('l j \d\e F \d\e\l Y');
return $out;
}
Se usa asi:
Código PHP:
Ver originalecho get_formated_date('2014-06-12 23:06:27');
Se puede mejorar la eficiencia y aqui la version en MySQL basado en el ejemplo de @
gnzsoloyo
Código SQL:
Ver originalSELECT
DAY(dtmFecha) dia, MONTH(dtmFecha) mes, YEAR(dtmFecha) anio,
CASE DAYOFWEEK(dtmFecha)
WHEN 7 THEN 'Sabado'
WHEN 1 THEN 'Domingo'
WHEN 2 THEN 'Lunes'
WHEN 3 THEN 'Martes'
WHEN 4 THEN 'Miercoles'
WHEN 5 THEN 'Jueves'
WHEN 6 THEN 'Viernes'
ELSE 'error'
END
AS diasemana FROM `tu_tabla` WHERE (condiciones)
Y desde PHP si usas la ultima solucion haces:
Código PHP:
Ver original<?php
$meses =
array("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre");
$dia = $registro['dia'];
$mes = $registro['mes'];
$anio = $registro['anio'];
$diasemana = $registro['diasemana'];
$fecha = "$diasemana, $dia de {$meses[$mes]} del $anio";