2012-04-13 29 views
1

我保存在我的DATETIME型數據庫中的日期返回本地時間,尋找爲:年月日H:我:■PHP:如何從數據庫

我想實現的是從數據庫中返回日期用戶的當地時間。例如,如果用戶在法國,我會返回他的時區。是否有可能在不存儲用戶的時區的情況下實現這一點?或者,如果有其他可能,並且數據庫中的存儲格式需要更改,那麼我可以做到這一點。但是,我試圖在不存儲用戶時區的情況下實現這一點。

回答

1

嗯,我能想到這樣做不要求他們的時區的用戶的唯一方法是這樣的:

<p>The time is: <span id="time" data="<?php echo strtotime($time_from_db); ?>"></span></p> 
<script type="text/javascript"> 
    (function() { 
     var t = document.getElementById('time'), d = new Date(); 
     d.setTime(t.getAttribute("data")); 
     t.innerHTML = d; 
    })(); 
</script> 

這傳遞的日期時間作爲時間戳,JS然後應用場所(包括時區),以。

+0

你是否建議將時間存儲在數據庫中作爲時間戳? – Darko 2012-04-13 16:00:16

+0

我喜歡使用時間戳,但實際上並沒有什麼區別,除非您輸入的值是數字而不是格式化的日期。 – 2012-04-13 16:14:29

2

在數據庫中以UTC存儲時間,然後在應用程序中執行時區本地化。不過,您需要知道用戶的時區。

+0

...並考慮到夏令時。 – 2012-04-13 15:53:32

+0

@EdHeal:沒錯。如果您使用JS中的getTimezoneOffset()方法向服務器報告,我相信DST已經在偏移量中佔了。 – FtDRbwLXw6 2012-04-13 16:16:22

+0

它確實假定機器的時鐘設置正確!公共機器(如這個)已經用了3小時22分鐘! – 2012-04-13 16:26:34