日期:2014-05-17  浏览次数:20372 次

访问某个互联网网站,在里面创建修改日志,发现界面上显示的是我本地的创建修改日志时间,不是服务器的标准时间,请问这是在编程方面代码引起的原因吗?
这就意味着当我把本地时间改为2011年,然后再去这个网站上创建修改日志时,显示创建修改日志的时间就是2011年的了。
请问这是在编程方面代码引起的原因吗? 一般的显示时间不是以服务器为主的吗?怎么跑到我客户端电脑来了

------解决方案--------------------
DateTime.Now 取的时间是本地时间。
------解决方案--------------------
探讨

DateTime.Now 取的时间是本地时间。

------解决方案--------------------
探讨

引用:

引用:

DateTime.Now 取的时间是本地时间。


DateTime.Now只能在asp.net服务端运行,怎么会取到本地时间呢?

那请问是什么原因

------解决方案--------------------
这是设计网络系统BLL层的人缺乏经验。一般来说,除非业务逻辑上明确说明了,否则任何业务都是以服务器端时间保存的的。而且往往是以服务器端UTC时间保存的。即时一个业务功能的参数中有“客户端时间”,那么在服务端存储时也会保存两个时间——包括服务端时间。

这是很简单的设计问题。记住就好了。

注意往往是“服务器端使用UTC时间”。比如网络客户端有人的电脑是简体中文的、有人是日文的,有人(即使系统一致而)时区设置不一致,有人的时钟快一点或者慢一点,这些都是BLL层设计师应该考虑到的最基本概念知识。
------解决方案--------------------
探讨
请问sp1234,BLL层设计师是不是一般不考虑客户端电脑的时间(客户端的时间用户可能拨快或者拨慢了),只要根据服务器时间和客户端的时区就可以转换成客户端的时区了吧。

------解决方案--------------------
探讨
真奇怪,猜测:Datetime.now发布在服务器上,客户端访问,居然显示 的是客户端的时间。。。

------解决方案--------------------
设计层面不深究,如果你现在客户端提交上去是2011年,它也是2011年,那么这个现象的最大可能是服务器没有生成时间,而是在客户端提交的时候,将客户端时间提交上去。这个他们出于何种考虑未知,可能是设计需求(这可以让用户控制显示时间也是个不错的Idea),也有可能是BUG。
至于什么人性化设计什么的YY,都是浮云,一切以用户需求为准,人家要杯子,你给人家一个碗,还说是人性化?