2010-09-03 15 views

Respuesta

17

Si tiene esas fechas como cadenas, puede simplemente usar strtotime(), si solo tiene información parcial, puede usar mktime().

Sin embargo, Septiembre solamente tiene 30 días;)

Ejemplo:

$month = 9; 
$year = 2010; 

$first = mktime(0,0,0,$month,1,$year); 
echo date('r', $first); 

$last = mktime(23,59,00,$month+1,0,$year); 
echo date('r', $last); 
+0

No tengo estas cadenas, los 2 parámetros pasados ​​a través de la cadena de consulta son mes y año. A partir de ahí, tengo que trabajar en la primera y última marca de tiempo. – dotty

+0

Ok, edité mi respuesta –

+0

Así es como lo escribí sin embargo vengo el problema de fabrik con $ days_in_month = cal_days_in_month (CAL_GREGORIAN, $ month, $ year); – dotty

1

Tal vez se puede hacer más simple, pero usted consigue la idea:

<?php 

$start = mktime(0, 0, 1, $month, 1, $year); 
$end = mktime(23, 59, 00, $month, date('t', $month), $year); 

?> 
4

Si está usando PHP 5.3 (no intente esto con 5.2, el analizador de fecha funciona de manera diferente) podría hablar:

<?php 

$date = "2010-05-10 00:00:00"; 

$x = new DateTime($date); 

$x->modify("last day of this month"); 
$x->modify("last second"); 

echo $x->format("Y-m-d H:i:s"); 
// 2010-05-30 23:59:59 
$timestamp = $x->getTimestamp(); 
+1

OP necesita dos marcas de tiempo, no una fecha formateada, si estoy en lo cierto. – fabrik

+0

Editado en getTimestamp, el formato era solo una prueba rápida de que funciona. Gracias ! – edorian

Cuestiones relacionadas