gpt4 book ai didi

sql - 经典 ASP - 服务器时间与本地时间

转载 作者:行者123 更新时间:2023-12-04 05:51:56 28 4
gpt4 key购买 nike

我有一个经典的 ASP 应用程序,我正在处理日期截止。我的服务器位于中部时间,但我在东部时间。发生的情况是我的应用程序认为它早了一个小时,而我的截止时间晚了一个小时。我敢肯定,如果用户在太平洋时间,他们会提前 2 小时。

我想弄清楚的是是否有办法

  • 当您在 SQL 上执行 GetDate() 或在 ASP 中执行 Now() 时,告诉服务器向我显示本地时间
  • 找出一些方法来做一个偏移量,我可以在页面第一次加载时运行,并根据需要使用。

  • 我尝试了服务器端 javascript,它也返回中央时间。任何帮助将不胜感激!!提前致谢!

    丹尼斯

    更新 - 2012 年 4 月 11 日下午 1:12:

    我想我为我的应用程序找到了一个解决方法,但它不能正常工作。我有我正在使用的位置的地理数据 - 邮政编码。我可以从中获取时区 - 对于查看该位置的其他时区的用户来说,它不能完全正常工作,但这对我的应用程序来说并不重要,因为我只需要关注该位置的结束时间。

    这是我发现的其他方式由下面的 JohnB 提供(特别是 #4)。谢谢大家。 http://www.webmasterworld.com/forum47/600.htm (底部)

    最佳答案

    编辑

    I tried server side javascript, it returns Central Time too.



    您是说客户端 JavaScript 吗?您肯定需要使用客户端脚本来获取用户的设备时间(而不是服务器端脚本)。

    你应该阅读这个:
  • Daylight saving time and Timezone best practices

  • 处理多个时区的入门:

    1) 确保您的数据库服务器在其时区设置为正确的日期/时间。在其位置正确考虑夏令时。将服务器设置为自动执行此操作。
  • Configure automatic date and time synchronization on Windows Server 2008 R2

  • 2) 在您的数据库中创建一个表,其中包含时区及其与 UTC (GMT) 的偏移量。
  • Time zone

  • 3) 始终存储 Now() UTC 日期/时间。每个数据库供应商都应该有一个 UTC 日期/时间 Now()函数(即 SYSUTCDATETIME() 对于 SQL Server)。通过这种方式,所有时间都以通用格式存储,与用户碰巧坐在哪里无关。调用 Now()来自您的数据库,而不是客户端,因为移动设备可以在任何地方,但您的数据库服务器却停留在一个地方。
  • Date and Time Data Types and Functions (Transact-SQL)

  • 4)让用户输入他们的本地时区并将其存储在您的数据库中。

    5) 当向用户显示以 UTC 存储的日期/时间时,使用用户的时区偏移量将 UTC 日期/时间转换回用户的时区。 SQL Server 使用 datetimeoffset 使这件事变得更容易一些.
  • SQL Server How to persist and use a time across different time zones
  • The Death of DateTime?

  • 6) 如果用户正在设置闹钟,让他们输入本地时区的触发日期/时间。通过这种方式,用户可以在移动时更改本地时区。此外,如果时区规则发生变化,您只需修复时区表 (#2),然后警报仍将正确触发。在您的代码中,要测试警报触发,请将触发时间转换为 UTC,然后与 UTC 中的服务器时间进行比较(即 SYSUTCDATETIME() )。

    7)夏令时很棘手! (见第一个链接)

    关于sql - 经典 ASP - 服务器时间与本地时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9957526/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com