台灣最大程式設計社群網站
線上人數
1176
 
會員總數:245002
討論主題:188957
歡迎您免費加入會員
討論區列表 >> PHP >> session和date練習遇到時間差的問題
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
session和date練習遇到時間差的問題
價值 : 10 QP  點閱數:375 回應數:2

樓主

pon
門外漢
0 2
196 2
發送站內信

小弟在練習session和date的,目的是要計算從進入該網頁後開始計算逗留的時間
第一個檔案為程式碼如下:



第二個檔案程式碼如下



在第一個檔案中,假如進入此頁面時間為 01時48分30秒,點選瀏覽連結後到第二個頁面中
第二個頁面中會顯示現在時間和逗留本站時間,如第二頁面中 現在時間為 02 時 10 分 26 秒
但 已經逗留本站時間為 08 時 21 分 56 秒,不懂最前面為什麼會是 08時 而不是 00時
找不出原因,還請版上前輩指導,非常感謝。

搜尋相關Tags的文章: [ session ] , [ date ] , [ 逗留時間 ] ,
本篇文章發表於2018-07-26 02:15
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
不錯的參考

迷路
捐贈 VP 給 迷路 檢舉此回應
基本觀念問題
time()取得的是從1970/01/01 00:00:00(+0時區)到現在的秒數,與主機設定的時區無關
date()會將秒數轉換成日期格式,依主機設定的時區
當你將秒數相減後用date()轉換時,他會因為你的時區設定而+8
另外,就算你設定+0時區,當秒數超過一天時,date()也只會給出扣掉天數後的時分秒
例如實際是28時30分40秒,date只會給出4時30分40秒
一般來說,要取得秒數轉換後的時分秒,都是自己除3600取整數得到時,將餘數除60取整數得到分,取餘數得到秒
本篇文章回覆於2018-07-26 09:16
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
最有價值解答

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
因為~~date不是拿來讓你顯示停留時間用的。而是格式化目前時間用的。

一般想要計算逗留時間有兩種計算方式。
其中一種上面已經說了。

用除除60 3600 的方式來將秒數換算成實際的時間秒。


另一招是我以前比較常用的招。跟你目前的有點類同
只是做法要加工一下。再你的第7行下。再加上

其實這招就是為了要配合date的顯示處理的。
但基本上,最好還是用第一招的方式,也就是自行用秒數來計算時間。

其實是還有另一招啦。只是這招就需要並較冷門的技術了。
且大多數來說,第一種方式就夠用了。
本篇文章回覆於2018-07-26 17:52
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.