問(wèn)題描述
這讓我很困惑.我的模型中有一個(gè)用 DateTime 注釋的屬性.在我的數(shù)據(jù)庫(kù)中,它存儲(chǔ)為時(shí)間戳.在前端我使用 f:format.date viewhelper 來(lái)輸出這個(gè)屬性.
Its confusing me. I've a property in my Model which is annotated with DateTime. In my Database its stored as timestamp. In Frontend I use the f:format.date viewhelper to output this property.
當(dāng)我創(chuàng)建新記錄并添加 f.e.01.06.2017 10:00 在這個(gè)字段中,在我的數(shù)據(jù)庫(kù)中存儲(chǔ)了 01.06.2017 08:00 的時(shí)間戳.在前端輸出是正確的.直到這里一切都很好.
When I create a new record, and add f.e. 01.06.2017 10:00 in this field, in my database is stored the timestamp for 01.06.2017 08:00. In Frontend the output is correct. Until here everything is fine.
三月份的最后一次時(shí)間更改導(dǎo)致輸出增加了兩個(gè)小時(shí).我假設(shè) 10 月會(huì)再次改變,輸出將比這個(gè):01.06.2017 08:00.
The last timechange in March lead to a + of two hours in output. I assume in October that will change again and the output will be than this: 01.06.2017 08:00.
我怎樣才能防止這種情況發(fā)生.當(dāng)這些日期改變時(shí),這絕對(duì)是一個(gè)問(wèn)題,因?yàn)樗鼘?duì)業(yè)務(wù)很重要.
How can I prevent this. Its definitely a problem when these dates change, because its important for the business.
我如何測(cè)試 10 月份會(huì)發(fā)生什么?
How can I test what will happen in October?
推薦答案
問(wèn)題發(fā)生是因?yàn)?TYPO3 將時(shí)間標(biāo)準(zhǔn)化為 UTC.對(duì)于規(guī)范化(以及隨后的非規(guī)范化),它尊重服務(wù)器的時(shí)區(qū)設(shè)置.或 LocalConfiguration.php.
中給出的設(shè)置在 6.2 之前,有兩個(gè)設(shè)置 [SYS][serverTimeZone]
和 [SYS][phpTimeZone]
.
在 7.6 中,它只是 [SYS][phpTimeZone]
,因?yàn)榉?wù)器時(shí)區(qū)是從 php 本身檢測(cè)到的.
The Problem occurs as TYPO3 saves times normalized as UTC. for normalization (and afterwards denormalization) it respects the timezone-settings of the server. Or settings given in LocalConfiguration.php.
Up to 6.2 there were two settings [SYS][serverTimeZone]
and [SYS][phpTimeZone]
.
With 7.6 it is only [SYS][phpTimeZone]
as the servertimezone is detected from php itself.
您現(xiàn)在可以選擇通過(guò)將 [SYS][phpTimeZone]
設(shè)置為字符串UTC"來(lái)將服務(wù)器的時(shí)區(qū)偽裝為UTC".這樣一來(lái),時(shí)間就不能再改變了.
You now have the option to fake the timezone of your server to "UTC" by setting [SYS][phpTimeZone]
to the string "UTC". In this way no times should be changed any more.
這篇關(guān)于使用 TYPO3 和 Fluid 正確處理時(shí)區(qū)的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,也希望大家多多支持html5模板網(wǎng)!