Estoy tratando de escribir un script que verifique si la fecha / hora actual ha pasado 05/15/2010 at 4PM
¿Cómo puedo usar la función date () de PHP para realizar esta verificación?
Desde PHP> = 5.2.2 puede usar la DateTime
clase como tal:
if (new DateTime() > new DateTime("2010-05-15 16:00:00")) {
# current time is greater than 2010-05-15 16:00:00
# in other words, 2010-05-15 16:00:00 has passed
}
La cadena que se pasa al constructor DateTime se analiza de acuerdo con estas reglas .
Tenga en cuenta que también es posible utilizar las funciones time
y strtotime
. Ver respuesta original .
new DateTime('2010-05-15')
es solo un ejemplo, podría ser cualquier objeto DateTime que haya inicializado anteriormente.$object
es un objeto DateTime, lo uséif (new DateTime() > $object) {}
y funciona mal. Peroif (time() > $bject->getTimeStamp()) {}
funciona correctamente. @Salman ATambién existe la clase DateTime que implementa una función para operadores de comparación.
fuente
Verifique la función de PHP
strtotime
para convertir su fecha / hora establecida en una marca de tiempo: http://php.net/manual/en/function.strtotime.phpSi
strtotime
no puede manejar su formato de fecha / hora correctamente ("4:00 PM" probablemente funcionará pero no "a las 4:00 PM"), deberá usar funciones de cadena, por ejemplo,substr
para analizar / corregir su formato y recuperar su marca de tiempo a través de otra función, por ejemplomktime
.Luego compare la marca de tiempo resultante con la fecha / hora actual (
if ($calulated_timestamp > time()) { /* date in the future */ }
) para ver si la fecha / hora establecida es en el pasado o en el futuro.Sugiero leer el PHP-doc sobre las funciones de fecha / hora y volver aquí con parte de su código fuente una vez que se quede atascado.
fuente
fuente
$myDate
será igualstring (0) ""
.