2009-10-12 85 views
0

這可能是個愚蠢的問題,但不管怎麼說都不好問。gmt或沒有gmt

我真的需要在網站上實現gmt來獲得適當的時間戳在帖子上嗎?以及即時建立像Twitter一樣的網站。我的飼料工作正常,並顯示我需要的時間,就像它顯示「張貼11分鐘,昨天發佈,5天前發佈..」就像這個網站,所以我認爲它應該爲每個人適當工作,你的想法?或者你認爲我需要在其上實現gmt,並且你是否推薦或者有任何文章來實現它適當的方式?

對不起,如果這聽起來很蠢:o

回答

1

這是一個好點,但考慮當1天前提出「昨天」,這是目前上午01時05分對於一些用戶。我想如果你使用days = hours%24而不是days = datediff(then,now).days,那麼它會正常工作。

我認爲問題是:您的網站需要多準確?如果是醫學讀物,所以有人可以知道他們的藥物何時到期,那麼是的,你想正確計算時區,並給出準確的時間,而不僅僅是「x前」。如果僅僅是「兩天前喬說的」,那麼這不是什麼大不了的事情。

+0

好吧,我有我自己的方法,但它仍然需要兩個日期才能獲得發佈周/日/分/秒。我怎麼能做天,小時%24?像你上面提到的..即時編碼在PHP中。 – Basit 2009-10-12 13:49:34

1

當你在談論諸如小時,分鐘和秒鐘等時間段時,那甚至與時區無關。查看創建時間的時間戳,然後查看時間戳。做一些減法和瞧!

唯一有點奇怪的是當你在幾天的範圍內。昨天是否意味着「在最後一個午夜之前的24小時內的某個時間」,還是意味着「24小時以前」?無論如何,如果您提供的唯一級別的粒度是「天數」,那麼一旦它經過大約2天,那麼它並不重要。

避免混淆的一個很好的方法是在SO上使用同樣的方法:在屏幕上放置可讀的友好日期(「昨天」),但將確切時間(在GMT或用戶的TZ中)作爲提示。

2

從長遠來看,無論用戶界面如何呈現,最好始終以GMT/UTC存儲時間戳。這有兩個好處:

  • 在某些時候改變UI的時候,你會不會需要觸摸數據
  • 它給出了一個明確的設計原則(在一個明確的權利條款/錯誤的決定):任何處理時間的具體功能可以獨立審查。處理UTC中的時間戳

至於特定的編程準則:這些取決於您想要執行的功能。大多數情況下,您需要從utc或utc操作。