【问题标题】:What is the best way to get the date and time in server side?在服务器端获取日期和时间的最佳方法是什么?
【发布时间】:2016-12-16 04:54:31
【问题描述】:

我正在开发一个 asp.net mvc3 项目。我在遇到的这个问题上遇到了麻烦。我将给出一个场景,以便它很好地理解。

Scenario:

我有 2 台电脑 (PC1(server) and PC2(client))。例如,两台 PC 都有不同的日期和时间,假设 PC1+8GMT Date 8/10/2016PC2 +8GMT Date 8/9/2016。我正在使用PC2 client 并且我正在使用代码来获取我的控制器中的时间为DateTime.Now();,并且在我的一个视图中时间显示在label 中。我试图调整Date and TimeDate and Time 用于显示时间的标签也改变了。我想要的是即使我更改了PC2 中的Date and Time,它也不会影响/更改我标签中显示的Date and Time,它会坚持PC1 中的Date and Time

This scenario is i'm using/testing the publish project

欢迎提出任何建议。

【问题讨论】:

    标签: asp.net date asp.net-mvc-3


    【解决方案1】:

    我不确定我是否理解这个问题,但您可以考虑查看 DateTime.ToUniversalTime 方法,该方法将 DateTime 对象的值转换为 UTC。

    这样,您可以使用标准时间,您可以将其转换为您可能希望在应用程序中显示的任何时区,而不管服务器位置如何。

    DateTime serverTime = DateTime.Now;    
    DateTime utcTime = serverTime.ToUniversalTime;   
    string timeZoneId = "some time zone id";
    TimeZoneInfo myTime = TimeZoneInfo.FindSystemTimeZoneById(timeZoneId);
    
    DateTime label = TimeZoneInfo.ConvertTimeFromUtc(utcTime, myTime);
    

    【讨论】:

    • 对不起,我的解释不够好,但它与我所寻找的不同。
    • 对不起,我这几天很忙。如果我使用.ToUniversalTime,即使我更改了PC2 中的DATE,标签中显示的日期也不会改变?
    【解决方案2】:

    我对你的描述不是很清楚。当通过调用服务器上的站点将网页加载到客户端时,您似乎希望标签始终显示服务器 (PC1) 上的时间,可能类似于 https://pc1。您正在做的事情应该做到这一点:标签中显示的时间将是来自服务器的系统时间。更改客户端上的时间不会影响它。

    如果您希望您的客户端 (PC2) 显示其本地时间,您将需要使用在客户端上运行的代码,即大多数情况下的 JavaScript。 在 Javascript 中使用日期可能与其他语言/期望有点不同,所以我建议阅读https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date 的文档。 开始使用var currentDate = new Date();

    【讨论】:

      猜你喜欢
      • 2011-06-05
      • 2018-04-11
      • 1970-01-01
      • 2010-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-07
      相关资源
      最近更新 更多