1

我正在开发一个跟踪我的组织的日程安排的 Web 应用程序。有超过 100 个不同的官方位置可以使用它。当用户登录时,用户的物理位置会保存在会话中。

应用程序上有一个用户可以单击的按钮。我有一个要求,当用户单击按钮时,应用程序必须记录它在用户物理位置的时间。

我知道将应用程序设计为在内部使用 UTC 可能是有意义的,但该程序多年来一直使用本地时间。但是,到目前为止,我看不到有人做过任何需要使用当前时间(日期除外)的事情。

我可以在我的数据库中看到每个位置都有一个应该对应于时区的“区域设置 ID”,但我知道在世界各地考虑“夏令时”和“夏令时”的方式存在差异.

考虑所有这些事情的有效方法是什么,以便当用户在 100 个位置之一登录时,当他单击按钮时,我可以知道用户的物理位置是什么时候?

4

2 回答 2

1

我想我已经弄清楚了。到目前为止,我至少能够在我测试过的一个位置验证此解决方案。

我提到的“本地 ID”与您可以传递给各种 .net 时区函数(例如 .net 时区函数)的字符串相同TimeZoneInfo.ConvertTimeBySystemTimeZoneId。这个函数似乎足以获取用户所在位置的当地时间。

你们中的一些人在评论中提出了一个很好的观点,即用户欺骗系统的动机可能如何发挥作用,但我相信我的解决方案无论如何都有效。

于 2013-03-04T18:36:19.730 回答
0

您将无法保证它是正确的,但您可以使用 javascript(通过调用new Date())检索浏览器认为的日期和时间,然后使用 AJAX 将该值发布到服务器 - 从那里做任何您需要的事情去做。

从用户的角度来看,这个日期很有可能是正确的。

于 2013-03-04T16:08:03.783 回答