Foros del Web » Programando para Internet » PHP »

Cambiar Fecha YYYY-mm-dd a 0000-ene, 0000-feb...

Estas en el tema de Cambiar Fecha YYYY-mm-dd a 0000-ene, 0000-feb... en el foro de PHP en Foros del Web. Hola a todos En el DB tengo un campo 'FCreacion' tipo date '0000-00-00 00:00:00' Esto se puede cambiar a '0000-00-00' es manejable el campo, si ...
  #1 (permalink)  
Antiguo 08/12/2015, 09:53
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 6
Cambiar Fecha YYYY-mm-dd a 0000-ene, 0000-feb...

Hola a todos

En el DB tengo un campo 'FCreacion' tipo date '0000-00-00 00:00:00'
Esto se puede cambiar a '0000-00-00' es manejable el campo, si
en caso se deba cambiar a "vachar"

Lo que me gustaria es ver la forma que muestre solo dos Cosas Anio y Mes o
Solo el Anio o Mes cualquiera de las dos opciones.

Es decir '0000-00' 'YYYY-MM' o Anio 'YYYY' o 'MM' que sea manejable
en caso necesite cualquiera de los dos

El detalle es que muestre con nombre es decir: Enero, Febrero, Marzo, Abril, etc..
Por el Anio no habria problema ya que Solo seria numero.

Espero me puedan ayudar con este problema, Gracias.

El resultado seria mas o menos asi:
2015-Diciembre
2016-Enero
2016-Febrero
etc...


Aqui el formulario para el insert al DB, que tomaria la fecha,
hora, minuto, segundo, actual en que es ingresado el formulario
que guarda al DB asi: '0000-00-00 00:00:00' con la fecha, hora,
minuto, segundo, correspondiente, hasta qui todo bien.

Código PHP:
Ver original
  1. <form method="post" action="">
  2. <input name="FCreacion" type="hidden" value="<? date_default_timezone_set('America/New_York');  echo date("Y-m-d H:i:s", time());  ?>" />
  3. <!-- Otros campos etc... -->
  4. <input name="Enviar" type="submit">
  5. </form>



Y de esta forma traigo los datos de la tabla como resultado
'0000-00-00 00:00:00' con la fecha, hora, minuto, segundo,
correspondiente, igual hasta qui todo bien.

Código PHP:
Ver original
  1. <?php
  2. include_once('conexion.php'); // Coneción
  3. // Formato Fecha Americana
  4. date_default_timezone_set('America/New_York');
  5. $FCreacion = $FCreacion;
  6. $MostrarFecha=date("Y-m-d H:i:s",time($FCreacion));
  7. echo $MostrarFecha;
  8. // EL RESULTADO SERI ASI '0000-00-00 00:00:00'
  9. ?>

Y LA IDEA ES:

2015-Diciembre
2016-Enero
2016-Febrero
etc...
  #2 (permalink)  
Antiguo 08/12/2015, 10:59
 
Fecha de Ingreso: diciembre-2015
Ubicación: México
Mensajes: 280
Antigüedad: 8 años, 4 meses
Puntos: 20
Respuesta: Cambiar Fecha YYYY-mm-dd a 0000-ene, 0000-feb...

Hola amigo
Hace tiempo conteste una pregunta parecida,
quizá te pueda servir:
http://www.forosdelweb.com/f18/php-cambiar-fecha-cadena-date-1143192/#post4762597
  #3 (permalink)  
Antiguo 08/12/2015, 11:14
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Cambiar Fecha YYYY-mm-dd a 0000-ene, 0000-feb...

Utiliza la extensión intl: http://php.net/manual/es/book.intl.php para formatear la fecha,
Código PHP:
Ver original
  1. //creas una instancia para tu region
  2. $fmt = new IntlDateFormatter(
  3.     "es_ES" ,
  4.     IntlDateFormatter::FULL,
  5.     IntlDateFormatter::FULL,
  6.     'America/New_York',
  7.     IntlDateFormatter::GREGORIAN,
  8.     "yyyy'-'MMMM "
  9. );
  10.  
  11. $date = new DateTime('2015-12-24 14:30:10'); //la fecha de tu base de datos
  12.  
  13. echo utf8_decode(ucwords($fmt->format($date), '-')); //2015-Diciembre
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #4 (permalink)  
Antiguo 08/12/2015, 11:23
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 6
Respuesta: Cambiar Fecha YYYY-mm-dd a 0000-ene, 0000-feb...

Cita:
Iniciado por hhs Ver Mensaje
Utiliza la extensión intl: http://php.net/manual/es/book.intl.php para formatear la fecha,
Código PHP:
Ver original
  1. //creas una instancia para tu region
  2. $fmt = new IntlDateFormatter(
  3.     "es_ES" ,
  4.     IntlDateFormatter::FULL,
  5.     IntlDateFormatter::FULL,
  6.     'America/New_York',
  7.     IntlDateFormatter::GREGORIAN,
  8.     "yyyy'-'MMMM "
  9. );
  10.  
  11. $date = new DateTime('2015-12-24 14:30:10'); //la fecha de tu base de datos
  12.  
  13. echo utf8_decode(ucwords($fmt->format($date), '-')); //2015-Diciembre
Gracias por la respuesta pero hay errores de este tipo ejemplo


Fatal error: Class 'IntlDateFormatter' not found in $fmt = new IntlDateFormatter(
  #5 (permalink)  
Antiguo 08/12/2015, 11:25
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 6
Respuesta: Cambiar Fecha YYYY-mm-dd a 0000-ene, 0000-feb...

Cita:
Iniciado por german_1441 Ver Mensaje
Hola amigo
Hace tiempo conteste una pregunta parecida,
quizá te pueda servir:
http://www.forosdelweb.com/f18/php-c...2/#post4762597
Hola german
sigue igual aprece
0000-00-00 00:00:00 es decir la fecha hora y sengundos actuales mas no
aparece AÑO y Mes
  #6 (permalink)  
Antiguo 08/12/2015, 11:29
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 6
Respuesta: Cambiar Fecha YYYY-mm-dd a 0000-ene, 0000-feb...

Creo que no funcionan esos codigos para lo que necesito
  #7 (permalink)  
Antiguo 08/12/2015, 11:41
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 6
Respuesta: Cambiar Fecha YYYY-mm-dd a 0000-ene, 0000-feb...

La verdad igual gracias por la intencion seguire esperando una solucion la clase intl se veia bueno pero no resulto hay que instalar no se que en el hosting y lo veo algo trabajoso para algo mas practico ya que pide perl y no se cuantito mas PEnse que era sensillo solucionarlo pero veo que hay muchos con ese problema gracias
  #8 (permalink)  
Antiguo 08/12/2015, 12:02
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Cambiar Fecha YYYY-mm-dd a 0000-ene, 0000-feb...

En la actualidad la extensión intl esta instalada en la mayoría de los proveedores de servicios, y si tienes un vps generalmente es de ejecutar un solo comando para instalar dicha extensión.
Otra opción es que pruebes a usar setlocale: http://php.net/manual/es/function.setlocale.php
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #9 (permalink)  
Antiguo 08/12/2015, 13:06
 
Fecha de Ingreso: diciembre-2015
Ubicación: México
Mensajes: 280
Antigüedad: 8 años, 4 meses
Puntos: 20
Respuesta: Cambiar Fecha YYYY-mm-dd a 0000-ene, 0000-feb...

Cita:
Iniciado por pilucho Ver Mensaje
Hola german
sigue igual aprece
0000-00-00 00:00:00 es decir la fecha hora y sengundos actuales mas no
aparece AÑO y Mes
Hola Amigo, quizá no procesaste bien tu fecha;
mira, tu tienes tu variable $MostrarFecha; apartir de ella puedes hacer lo que te comentaba, de ésta forma:

Código PHP:
Ver original
  1. $MostrarFecha=date("Y-m-d H:i:s",time($FCreacion)); //La cual tiene tu fecha y hora
  2. $solo_fecha = date("Y-m-d",strtotime($MostrarFecha)); //Obtenemos sólo la fecha
  3.  
  4. Y ahora si puedes procesar
  5. $items = explode('-',$solo_fecha);
  6. $año = $items[0];
  7. $mes = $items[1];
  8. $dia   = $items[2];
  #10 (permalink)  
Antiguo 08/12/2015, 22:23
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 6
Respuesta: Cambiar Fecha YYYY-mm-dd a 0000-ene, 0000-feb...

Copie y pegue no resulto ya fue, pero igual gracias seguire esperando opciones ninguno funciono
  #11 (permalink)  
Antiguo 08/12/2015, 22:26
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 6
Respuesta: Cambiar Fecha YYYY-mm-dd a 0000-ene, 0000-feb...

Cita:
Iniciado por hhs Ver Mensaje
En la actualidad la extensión intl esta instalada en la mayoría de los proveedores de servicios, y si tienes un vps generalmente es de ejecutar un solo comando para instalar dicha extensión.
Otra opción es que pruebes a usar setlocale: http://php.net/manual/es/function.setlocale.php
Copie pegue y no resulto esto


Código PHP:
<?php
/* Establecer el localismo al holandés */
setlocale(LC_ALL'nld_nld');

/* Muestra: vrijdag 22 december 1978 */
echo strftime("%A %d %B %Y"mktime(00012221978));

/* Probar diferentes nombres posibles de localismos para el alemán a partir de PHP 4.3.0 */
$loc_de setlocale(LC_ALL'de_DE@euro''de_DE''deu_deu');
echo 
"El localismo preferido para el alemán en este sistema es '$loc_de'";
?>
si te refieres como ejemplo no resulto, y si hablas de VPS pues no tengo tu hosting dedicado solo es un simple hosting OJO no uso CPanel no asi que no podemos decir que todos tienen el mismo hosting, es mas montarlo en localhost peor ahi ni funciona, o sea lo ideal es un ejemplo que funcione como guia igual gracias quiza si estudie y sepa mas de esto lo comprenda, pero cada dia se aprende,
  #12 (permalink)  
Antiguo 08/12/2015, 22:33
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 6
Respuesta: Cambiar Fecha YYYY-mm-dd a 0000-ene, 0000-feb...

Y menos me has dicho por que sale este error ¨Fatal error: Class 'IntlDateFormatter' not found in $fmt = new IntlDateFormatter(¨ si conoces el codigo pues creo que sabrias por que aparece yo la verdad no se por que ni menos como funciona, pense que era mas sensillo la solucion si hay que instalar algo en el servidor que no tengo acceso y peor aun si no es la solucion creo que no me ayuda de mucho
  #13 (permalink)  
Antiguo 08/12/2015, 22:42
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 6
Respuesta: Cambiar Fecha YYYY-mm-dd a 0000-ene, 0000-feb...

De momento esta es la idea y parece que me funciono a simple vista vere si es la solucion

Fuente Fecha
  #14 (permalink)  
Antiguo 09/12/2015, 09:23
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Cambiar Fecha YYYY-mm-dd a 0000-ene, 0000-feb...

Cita:
Iniciado por pilucho Ver Mensaje
Y menos me has dicho por que sale este error ¨Fatal error: Class 'IntlDateFormatter' not found in $fmt = new IntlDateFormatter(¨ si conoces el codigo pues creo que sabrias por que aparece yo la verdad no se por que ni menos como funciona, pense que era mas sensillo la solucion si hay que instalar algo en el servidor que no tengo acceso y peor aun si no es la solucion creo que no me ayuda de mucho
La razón es por que no tienes instalada la extensión intl, si requieres aprender sobre el tema esta la documentación y adicionalmente existen otros recursos, todos disponibles en google.
En vista de que al parecer ninguna de las dos opciones aplican a tu panorama, creo que te sirve la ultima solución que publicaste.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #15 (permalink)  
Antiguo 09/12/2015, 23:20
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 6
Respuesta: Cambiar Fecha YYYY-mm-dd a 0000-ene, 0000-feb...

Cita:
Iniciado por hhs Ver Mensaje
La razón es por que no tienes instalada la extensión intl, si requieres aprender sobre el tema esta la documentación y adicionalmente existen otros recursos, todos disponibles en google.
En vista de que al parecer ninguna de las dos opciones aplican a tu panorama, creo que te sirve la ultima solución que publicaste.

SI es bueno tener opciones y no limitarse pero que deberia instalar algo que sea rapido y facil y no tener que hacer clic aqui clic alla has esto y el otro etc etc al final creo que terminas aprendiendo arabe y no es la idea creo yo, ya que en un pais latino en mi caso aquien le interesaria aprender arabe? como minimo ingles en fin... lo ideal seria como clase poner un include php y lea todo esas cosas y formate la fecha como lo comentas

Etiquetas: mysql+php
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:07.