访问某个互联网网站,在里面创建修改日志,发现界面上显示的是我本地的创建修改日志时间,不是服务器的标准时间,请问这是在编程方面代码引起的原因吗?
这就意味着当我把本地时间改为2011年,然后再去这个网站上创建修改日志时,显示创建修改日志的时间就是2011年的了。
请问这是在编程方面代码引起的原因吗? 一般的显示时间不是以服务器为主的吗?怎么跑到我客户端电脑来了
------解决方案--------------------DateTime.Now 取的时间是本地时间。
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------这是设计网络系统BLL层的人缺乏经验。一般来说,除非业务逻辑上明确说明了,否则任何业务都是以服务器端时间保存的的。而且往往是以服务器端UTC时间保存的。即时一个业务功能的参数中有“客户端时间”,那么在服务端存储时也会保存两个时间——包括服务端时间。
这是很简单的设计问题。记住就好了。
注意往往是“服务器端使用UTC时间”。比如网络客户端有人的电脑是简体中文的、有人是日文的,有人(即使系统一致而)时区设置不一致,有人的时钟快一点或者慢一点,这些都是BLL层设计师应该考虑到的最基本概念知识。
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------设计层面不深究,如果你现在客户端提交上去是2011年,它也是2011年,那么这个现象的最大可能是服务器没有生成时间,而是在客户端提交的时候,将客户端时间提交上去。这个他们出于何种考虑未知,可能是设计需求(这可以让用户控制显示时间也是个不错的Idea),也有可能是BUG。
至于什么人性化设计什么的YY,都是浮云,一切以用户需求为准,人家要杯子,你给人家一个碗,还说是人性化?