Necesito obtener el primer y el último día de un mes en el formato AAAA-MM-DD dado solo el mes y el año. ¿Hay una manera buena y fácil de hacer esto?En PHP, ¿hay alguna manera fácil de obtener la primera y la última fecha de un mes?
Respuesta
$first = date('Y-m-d', mktime(0, 0, 0, $month, 1, $year));
$last = date('Y-m-t', mktime(0, 0, 0, $month, 1, $year));
Consulte date() en la documentación de PHP.
El primer día es siempre YYYY-MM-01, ¿no es así? Ejemplo: date("Y-M-d", mktime(0, 0, 0, 8, 1, 2008))
Último día es el día anterior del primer día del mes siguiente:
$date = new DateTime("2008-09-01");
$date->modify("-1 day");
echo $date->format("Y-m-d");
El primer día del mes es siempre 1. lo que se convertirá
YYYY-MM-01
la último día se puede calcular como:
<?php
$num = cal_days_in_month(CAL_GREGORIAN, 8, 2003); // 31
echo "There was $num days in August 2003";
?>
OK, primero es muy fácil.
date ('Y-m-d', mktime(0,0,0,MM,01,YYYY));
Última es un poco más complicado, pero no mucho.
date ('Y-m-d', mktime(0,0,0,MM + 1,-1,YYYY));
Si recuerdo mi fecha de PHP cosas correctamente ...
** Editar - Gah! Golpeado hasta que un millón de veces ...
Editar por Pat:
Último día debería haber sido
date ('Y-m-d', mktime(0,0,0,$MM + 1,0,$YYYY)); // Day zero instead of -1
Por cierto @ZombieSheep solución
date ('Y-m-d', mktime(0,0,0,$MM + 1,-1,$YYYY));
no funciona debe ser
date ('Y-m-d', mktime(0,0,0,$MM + 1,0,$YYYY)); // Day zero instead of -1
Por supuesto, la solución aceptada por Michał Słaby es la más simple.
sólo para comprobar que no se pierda ningún cabo suelto:
$startDay = 1;
if (date("m") == 1) {
$startMonth = 12;
$startYear = date("Y") - 1;
$endMonth = 12;
$endYear = date("Y") - 1;
}
else {
$startMonth = date("m") - 1;
$startYear = date("Y");
$endMonth = date("m") - 1;
$endYear = date("Y");
}
$endDay = date("d") - 1;
$startDate = date('Y-m-d', mktime(0, 0, 0, $startMonth , $startDay, $startYear));
$endDate = date('Y-m-d', mktime(0, 0, 0, $endMonth, $endDay, $endYear));
<?php
echo "Month Start - " . $monthStart = date("Y-m-1") . "<br/>";
$num = cal_days_in_month(CAL_GREGORIAN, date("m"), date("Y"));
echo "Monthe End - " . $monthEnd = date("Y-m-".$num);
?>
La forma más sencilla de hacerlo es con PHP
$dateBegin = strtotime("first day of last month");
$dateEnd = strtotime("last day of last month");
echo date("MYDATEFORMAT", $dateBegin);
echo "<br>";
echo date("MYDATEFORMAT", $dateEnd);
O la última semana
if (date('N', time()) == 7) {
$dateBegin = strtotime("-2 weeks Monday");
$dateEnd = strtotime("last Sunday");
} else {
$dateBegin = strtotime("Monday last week");
$dateEnd = strtotime("Sunday last week");
}
O el último año
$dateBegin = strtotime("1/1 last year");
$dateEnd = strtotime("12/31 this year");
probar este para obtener el número de días del mes:
$numdays = date('t', mktime(0, 0, 0, $m, 1, $Y));
Ejemplo; Quiero obtener el primer día y el último día del mes actual.
$month = (int) date('F');
$year = (int) date('Y');
date('Y-m-d', mktime(0, 0, 0, $month + 1, 1, $year)); //first
date('Y-m-d', mktime(0, 0, 0, $month + 2, 0, $year)); //last
Cuando se ejecuta este, por ejemplo, en la fecha 01/09/2015, la primera y última valores serán secuencialmente;
2015-01-01
2015-01-31
Probado.
De here(get next month last day) que está marcado como duplicado, por lo que no puedo agregar comentarios allí, pero las personas pueden obtener malas respuestas desde allí.
una correcta para el último día del mes siguiente:
echo ((new DateTime(date('Y-m').'-01'))->modify('+1 month')->format('Y-m-t'));
una correcta para el primer día del mes siguiente:
echo ((new DateTime(date('Y-m').'-01'))->modify('+1 month')->format('Y-m-01'));
Código como este se suministra de marzo a partir de enero, por lo que no lo es podría esperarse.
echo ((new DateTime())->modify('+1 month')->format('Y-m-t'));
- 1. primera y última fecha del mes anterior
- 2. ¿Cómo puedo encontrar la primera y la última fecha en un mes usando PHP?
- 3. ¿Cómo obtener la primera fecha y la última fecha del mes anterior? (Java)
- 4. ¿Hay alguna manera fácil de obtener programáticamente el alfabeto?
- 5. ¿Hay alguna manera fácil de obtener sombras en OpenGL?
- 6. ¿Hay alguna manera fácil de obtener ServerName en Symfony?
- 7. Obteniendo la primera/última fecha de la semana
- 8. ¿Cómo obtener la última fecha de un mes en particular con JodaTime?
- 9. ¿hay alguna manera fácil de obtener un archivo y tener la última marca de verificación como la marca de tiempo del archivo?
- 10. PHP: ¿la forma más sencilla de obtener la fecha del mes 6 meses anteriores a la primera?
- 11. Python: obtener la fecha y hora de la última hora
- 12. ¿Hay alguna manera fácil de adjuntar una fuente en Eclipse?
- 13. ¿Hay alguna manera fácil de abrir un Uri y obtener lo que apunte? (C#)
- 14. ¿Hay alguna manera fácil de borrar un formulario ASP.NET?
- 15. PHP: función de fecha para obtener el mes de la fecha
- 16. ¿Hay alguna manera más fácil de enviar la tecla ENTRAR en la pantalla GNU?
- 17. ¿Hay alguna manera fácil de obtener datos de usuario de AuthComponent desde una vista en CakePHP?
- 18. ¿hay alguna manera de omitir la primera entrada en un iterador?
- 19. la fecha de la subasta en un mes
- 20. ¿Hay alguna manera fácil de convertir Criteria a HQL?
- 21. ¿Hay alguna manera fácil con NSDateFormatter para obtener fechas de estilo "Hoy", "Mañana", "Viernes"?
- 22. obtener la fecha actual y la fecha después de dos meses en php
- 23. Obtener la última fecha de modificación de un archivo remoto
- 24. ¿Hay alguna manera de obtener un REPL en pydev?
- 25. ¿Hay alguna manera fácil de ordenar NameValueCollection sobre la base de la clave en C#?
- 26. hay una manera de obtener el nombre del mes dando un valor entero PHP
- 27. Cómo detectar la primera y la última línea durante reader.readLine()?
- 28. ¿Obtener la fecha de la última ejecución de trabajo exitosa?
- 29. Obtener detalles de la fecha (día, mes, año) en GWT
- 30. Obtener la fecha de la última modificación de una URL
me siento un poco estúpido por preguntar por el primer día de un mes ....: \ –