【发布时间】:2013-03-24 23:52:27
【问题描述】:
我有一个 C# 时间应用程序,用户可以在其中创建一个计时器并启动它,它会在服务器上执行类似的操作:
(日期存储在 CEST 中(问题是夏季和冬季时间))
// insert into db
var entry = new TimeEntry();
entry.Start = DateTime.Now; (04/03/2013 12:00)
_timeEntries.Add(entry); // => now it's in the db
如果他停止它,那么它会做类似的事情:
// update the entry
var entry = _timeEntries.Get(1) // 1 is the id from the created entry before
entry.End = DateTime.Now; (04/03/2013 12:37)
_timeEntrires.Update(entry); // => now it updates it in the db
将在浏览器中为用户显示类似的内容:
定时器 ID:1
开始:04/03/2013 12:00
停止:04/03/2013 12:25
总计(以分钟计):25
现在我认为当用户更改他的时区时会出现一些问题。 解决这个问题的最佳方法是什么?将日期存储为 UTC,然后使用 JavaScript 进行转换?
感谢您的帮助:-)。
【问题讨论】:
-
“现在我认为当用户更改他的时区时会出现一些问题” - 你为什么这么认为?
-
是否需要在浏览器中显示日期和时间?是否足以显示用于诸如 Stackoverflow 之类的操作的时间量,例如他们显示类似: 4 分钟前问。如果您仍然需要尊重客户端日期和时间格式,那么您可以从客户端 HTTP 请求中获取本地化信息,然后在服务器上格式化信息。
-
@CodeCaster 因为日期保存在 CEST 并且用户有不同的时区,我错了吗?
-
是的,您确定服务器上的日期。客户端的设置无关紧要。
标签: c# javascript asp.net-mvc date timezone