If you want to find the next working day (assuming mon-fri) you can use this:
<?php
$d = new DateTime();
$day = $d->format('w');
if ($day == 0 || $day >= 5) $d->modify('+' . ((7-$day+1) % 7) . ' days');
else $d->modify('+1 day');
?>
DateTime::modify
(PHP 5 >= 5.2.0)
DateTime::modify — Altera la marca de tiempo
Descripción
Estilo orientado a objetos
Estilo por procesos
Altera la marca de tiempo de un objeto DateTime incrementando o disminuyendo en un formato aceptado por strtotime().
Parámetros
- object
-
Estilo por procesos solamente: Un objeto DateTime devuelto por date_create(). La función modifica este objeto.
- modify
-
Una cadena date/time. Los formatos válidos son explicados en Formatos de hora y fecha.
Valores devueltos
Devuelve el objecto DateTime por el método encadenado o FALSE en caso de error.
Historial de cambios
| Versión | Descripción |
|---|---|
| 5.3.6 | Las sentencias de fecha/hora absolutas ahora toman efecto. Previamente, sólo se usaban las partes relativas. |
| 5.3.0 | Se ha cambiado el valor devuelto en caso de éxito de NULL a DateTime. |
Ejemplos
Example #1 Ejemplo de DateTime::modify()
Estilo orientado a objetos
<?php
$fecha = new DateTime('2006-12-12');
$fecha->modify('+1 day');
echo $fecha->format('Y-m-d');
?>
Estilo por procesos
<?php
$fecha= date_create('2006-12-12');
date_modify($fecha, '+1 day');
echo date_format($fecha, 'Y-m-d');
?>
El resultado de los ejemplos serían:
2006-12-13
Example #2 Cuidado al añadir o sustraer meses
<?php
$fecha = new DateTime('2000-12-31');
$fecha->modify('+1 month');
echo $fecha->format('Y-m-d') . "\n";
$fecha->modify('+1 month');
echo $fecha->format('Y-m-d') . "\n";
?>
El resultado del ejemplo sería:
2001-01-31 2001-03-03
Ver también
- strtotime() - Convierte una descripción de fecha/hora textual en Inglés a una fecha Unix
- DateTime::add() - Añade una cantidad de días, meses, años, horas, minutos y segundos al objeto DateTime
- DateTime::sub() - Sustrae una cantidad de días, meses, años, horas, minutos y segundos de un objeto DateTime
- DateTime::setDate() - Establece la fecha
- DateTime::setISODate() - Establece la fecha ISO
- DateTime::setTime() - Establece la hora
- DateTime::setTimestamp() - Establece la fecha y la hora basadas en una fecha Unix
tom at r dot je
18-Jun-2009 02:43
