Obtengo una lista de elementos de mi base de datos, cada uno tiene un CURRENT_TIMESTAMP que he cambiado a 'x minutes' con la ayuda de timeago. Así que está funcionando bien. Pero el problema es que también quiero una pancarta "NUEVA" en los artículos que tienen menos de 30 minutos de antigüedad. ¿Cómo puedo tomar la marca de tiempo generada (por ejemplo: 2012-07-18 21:11:12) y decir si está a menos de 30 minutos de la hora actual, y repetir el letrero "NUEVO" en ese elemento.PHP Comprobando si la marca de tiempo es menor de 30 minutos
Respuesta
Use strtotime ("-30 minutos") y luego vea si la marca de tiempo de su fila es mayor que esa.
Ejemplo:
<?php
if(strtotime($mysql_timestamp) > strtotime("-30 minutes")) {
$this_is_new = true;
}
?>
estoy usando strtotime() dos veces aquí para obtener sellos de tiempo UNIX para su fecha de MySQL, y luego otra vez para conseguir lo que la marca de tiempo fue hace 30 minutos. Si la marca de tiempo de hace 30 minutos es mayor que la marca de tiempo del registro de mysql, entonces debe haberse creado más de 30 minutos.
No hay puntos para la brevedad que parece. –
+1. Gracias. Esta es una mejor forma de hacer esto que lo que he estado haciendo. Actualmente hago: 'if ($ post_date <(time() - 600))' pero usando 'strtotime()' pero ponerlo en inglés normal es un poco más fácil que encontrar el número de segundos para restar :) – Nathan
@ user1511331 Debe aceptar esta respuesta (consulte [¿Cómo funciona la aceptación de una respuesta?] (Http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235)) ya que te ayudó. – Nathan
intentar algo como esto, usando DateTime objeto de PHP:
$now = new DateTime();
$then = DateTime($timestamp); // "2012-07-18 21:11:12" for example
$diff = $now->diff($then);
$minutes = ($diff->format('%a') * 1440) + // total days converted to minutes
($diff->format('%h') * 60) + // hours converted to minutes
$diff->format('%i'); // minutes
if ($minutes <= 30) {
echo "NEW";
}
Editar: Mike es correcto, se me olvidaba que por cualquier razón, sólo %a
realidad devuelve el total de su tipo (en este caso los días) Todos los demás son para mostrar el formato de tiempo. He extendido lo anterior para que realmente funcione.
Esto no funcionará. Si la diferencia horaria es de 1 hora y 29 minutos, el formato '$ diff-> (" i ")' será 29. – Mike
'$ interval = new DateInterval ('PT1H29M'); echo $ interval-> format ('% i minutes'); 'echoes" 29 minutes " – Mike
@Mike Me olvidé de eso, y supongo que eso es lo que obtengo por no probar realmente el código. Lo ** hice ** la prueba esta vez y funciona como se esperaba. =) – Crontab
- 1. agregando 30 minutos a datetime php/mysql
- 2. MYSQL Query: última marca de tiempo + valor único de los últimos 30 minutos
- 3. PHP hacer si éste es menor
- 4. Cómo convertir una marca de tiempo de Unix en una marca de tiempo ISO8601 en PHP?
- 5. adición de 30 minutos hasta la fecha
- 6. El tiempo de caducidad de la cookie auth ASPX es siempre de 30 minutos
- 7. Adición de 30 minutos hasta la fecha hace que se vuelva 30 minutos
- 8. Adición de 30 minutos a tiempo formateado como H: i en PHP
- 9. PHP - Comprobando si el resultado es falso;
- 10. Comprobando si la fecha es fines de semana PHP
- 11. comprobando si la diferencia entre la fecha 2 es más de 20 minutos
- 12. encontrar si la fecha es más de 30 días
- 13. fecha php de marca de tiempo Unix
- 14. Cómo convertir la marca de tiempo java a php timestamp?
- 15. ¿Cómo configuro el tiempo de espera de la sesión de más de 30 minutos
- 16. Comprobando si es nulo
- 17. mySQL SELECT marca de tiempo (ahora() - 3000);
- 18. Agregue 30 segundos al tiempo con PHP
- 19. Linux marca de tiempo a PHP
- 20. Tiene problemas con repeatinterval cada 30 minutos
- 21. ffmpeg marca de agua primeros 30 segundos
- 22. Comprobando si existe la propiedad
- 23. Comprobando si la propiedad es configurable/eliminable
- 24. Convertir la marca de tiempo de UNIX en fecha, horas, minutos, segundo objetivo c
- 25. inserte la marca de tiempo actual en mysql con php?
- 26. C# loops a través de 24 horas cada 30 minutos
- 27. PHP, necesito restar 12 horas y 30 minutos de un DateTime
- 28. marca de tiempo de unix alrededor de la medianoche
- 29. Seleccionar filas de la tabla MySQL donde la marca de tiempo PHP es anterior a X
- 30. Error de llamadas del iPad AJAX después de 30 minutos
Me parece interesante cómo nadie sugiere usar time() - 30 * 60, me pregunto si soy el único que trabaja con las marcas de tiempo de Unix como enteros directamente. – Mahn