2009-07-21 28 views
6

¿Qué debo hacer para encontrar la marca de tiempo de unix de la medianoche del miércoles anterior? Mi único enfoque sería obtener el índice del día y el número del día de hoy, y restar la diferencia, pero puedo pensar en varios escenarios en los que esto podría fallar, por ejemplo, a principios de un mes antes de que haya ocurrido un miércoles.Obtenga la marca de tiempo de unix de la medianoche del miércoles anterior

Supongo, de manera más concisa, ¿cómo encuentro la fecha del miércoles anterior?

Cualquier ayuda sería apreciada.

+0

¿Está buscando la medianoche hora local, o la medianoche UTC? –

Respuesta

5

¿Qué hay de strtotime?

$timestamp = strtotime("last Wednesday"); 

var_dump($timestamp); 
var_dump(date('Y-m-d H:i:s', $timestamp)); // to verify 

y se obtiene este resultado:

int 1247608800 
string '2009-07-15 00:00:00' (length=19) 

que es de hecho el miércoles pasado, la medianoche.

4

Es más fácil de lo que parece ... observar la impresionante potencia de fuego de esta puesto de combate en pleno funcionamiento , er, quiero decir strtotime

$t=strtotime("last wednesday"); 

echo strftime("%d %b %Y %H:%M:%S", $t); 

Esta es la salida

15 Jul 2009 00:00:00 

cual, en el momento de la escritura, es el último miércoles :)

0

¿Qué tan "correcto" quieres ser? Si quieres ser muy correcto, deberás contabilizar el horario de verano, las zonas horarias, los años bisiestos, etc. Esto significa usar una biblioteca y no solo restar índices de día.

Actualmente no estoy haciendo PHP, pero que solía tener buena suerte con las bibliotecas de pera: aquí están los docs para la clase Calendar

Cuestiones relacionadas