這兩天須要計算兩個時間戳之間相差的天數,之前很隨意天然的想法就是兩個數字相減,而後除以一天的秒數86400,可是這樣反覆測試都是有問題的,四捨五入取整,都會考慮兩個時間戳都在當天的狀況,或者兩個時間戳一個在前一天的末尾,次日的開始,等等狀況。php
後來百度了一個思路引用一下 「由於在作hadoop計算的時候須要按照時間來分片,因此須要對long型的時間戳進行Partition,原本想了一下兩個時間先歸零到當天的0點,而後想減除以24小時就是中間的天數,這個算法沒錯,可是我沒有考慮到時區的問題,歸零的算法是(t1-t1%h24)t是時間戳,h表示一小時的毫秒數,這樣歸零實際上是格林威治時間的歸零,在咱們這邊正好的8點鐘,這樣就會把兩天的數據併到一個分區裏面」算法
剛學php的時候這些方法都是爛熟於心,如今時間久了,不少基礎的都淡忘了。。。oop