2011-07-13 19 views
16

¿Cómo puedo eliminar la parte de tiempo de una marca de tiempo?Eliminar parte del tiempo de una marca de tiempo

Por ejemplo, gire 1310571061 a 1310565600, que es la fecha y hora de fecha simple.

+0

Cuál es la fecha en la llanura de marca de tiempo? ¿Te refieres a la fecha + '00: 00: 00'? – Shef

+0

@shef, sí, quiero decir 'Y-M-D 00: 00: 00'. No hay veces calculado en la marca de tiempo. –

+0

Te di una respuesta. – Shef

Respuesta

24
strtotime(date("Y-m-d", 1310571061)); 

Eso debería hacerlo por usted.

+0

Gracias. pero esto funcionará solo durante 24 horas. –

+1

@David, ¿qué quieres decir? – Brad

+0

cómo cambiarlo a: 'strtotime (date (" ymd ", time())' then? –

1

Usted podría hacer:

$date = strotime(date("y/m/d", $timestamp)); 
4

Probar:

<?php 
$ts = '1310571061'; 

echo strtotime(date('Y-m-d 00:00:00', $ts)); 
?> 
+0

''Y-m-d'' es más convencional –

+0

@Yanick Rochon: ¡Actualizado, eso debería satisfacer! :) – Shef

24

En caso de que quería una solución matemática:

$time=1310571061; 
echo floor($time/86400)*86400; 

Hay 86.400 segundos en 24 horas (que es el longitud de típico día, pero no todos ... ver DST). Dado que nuestras marcas de tiempo están en UTC, esto no debería ser un problema. Puede dividir eso por el número de segundos en un día, soltar el resto y multiplicar hacia atrás.

+0

Cool. Intenté '$ time - ($ time% 86400)' antes de preguntar que la pregunta arrojó resultados incorrectos. ¿Alguna idea de por qué? –

+0

Por cierto, supongo 'time $/86400' es un error tipográfico. ¿derecho? –

+0

@David, eso funciona bien para mí. Tal vez echarle $ tiempo para flotar primero puede ayudar? – Brad

6

El uso de un objeto DateTime puede ser útil, y también puede hacer que el código sea más legible ...

$dt = new DateTime(); 
$dt->setTimestamp(1310571061); 
echo $dt->format('Y-m-d, H:i:s') . "\r\n"; 
$dt->setTime(0, 0, 0); 
echo $dt->format('Y-m-d, H:i:s'); 

Resultado ...

2011-07-14, 3:31: 01

2011-07-14, 00:00:00

La elección de si usar o marcas de tiempo primas Los objetos DateTime dependerán mucho de las necesidades de implementación, pero en general los objetos DateTime contribuirán a reducir la confusión y los errores que pueden surgir especialmente en torno a los problemas de Timezone y los problemas de Daylight Saving Time.

3
$pubdate='2003-02-19T00:00:00.000-05:00'; 

    $da = strtotime($pubdate); 
    echo $dat = date('Y-m-d', $da); 

La respuesta es como: "2003-02-19"

Gracias

Cuestiones relacionadas