2010-05-31 19 views
7

tengo una variable con el siguiente valorConvertir número de mes a mes nombre corto

$month = 201002; 

los 4 primeros números representan el año, y las 2 últimas cifras representan el mes. Necesito obtener los últimos 2 números en el nombre de la cadena del mes, por ejemplo. Febrero

Mi código es el siguiente

<?php echo date('M',substr($month,4,6)); ?> 

me puedo ir a punto de obtener el nombre del mes

+0

posible duplicado de [PHP convertido mes a mes el número-nombre corto] (http://stackoverflow.com/questions/4612012/php-convert-month -número a mes corto-nombre) –

Respuesta

15

Añadir "01" y strtotime será capaz de analizar la cadena:

echo date('M', strtotime($month . '01')); 
+0

02 representa Feb no Mayo – Roland

+0

¡Claro! Prueba mi código, funciona. – mexique1

+0

@Roland: 02 = Ene, 03 = Feb, ..., 13 = Dic – r3zn1k

7

El segundo parámetro de la fecha es una marca de tiempo. Usa mktime para crear uno.

$month = 201002; 
$monthNr = substr($month, -2, 2); 

$timestamp = mktime(0, 0, 0, $monthNr, 1); 
$monthName = date('M', $timestamp); 
+0

Me sale 'Dic' aquí http://writecodeonline.com/php/ – Sarfraz

+0

Olvidé la marca de tiempo $ @ $ y ahora funciona. – r3zn1k

+0

El segundo parámetro de 'substr' es la longitud, no la posición final. También puede buscar desde el final, usando 'substr ($ month, -2, 2)'. –

0
$mydate = "201002"; 
date('M', mktime(0, 0, 0, substr($mydate, 4, 2), 1, 2000)); 
-1

ser un programador, e incluso sin saber nada de la magia de datos PHP, que había llegado

$month = intval(substr($input_date,4,2)); 
$mons = explode(" ","Zer Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec"); 
echo $mons[$month]; 
+0

Pobre agosto y septiembre. :( – salathe

+0

Debe ser substr ($ strange_date, 4,2), porque el tercer parámetro es la duración ... – r3zn1k

+0

gracias \t 7 más para ir –

0

Esto puede ayudarle a ..

$month = substr($month, -2, 2); 
    echo date('M', strtotime(date('Y-'. $month .'-d'))); 
1

Puede usar la clase DateTime para obtener una estructura de datos de fecha usando la fecha y el formato. A continuación, obtener una cadena de fecha con cualquier formato de la siguiente manera:

$month = 201002; 
$date = DateTime::createFromFormat('Yd', $month); 
$monthName = $date->format('M'); // will get Month name 
Cuestiones relacionadas