如何在客户端javascript上获得正确的时间?

时间:2014-09-19 06:26:26

标签: c# .net asp.net-mvc datetime

目前,我的一个sqlserver表中有一个datetime字段。 我查询(SELECT Column1, myDateField FROM MyTimeTable BETWEEN @startDate AND @endDate)。 现在,我使用Entity框架在C#代码端获得了Column1, myDateField

问题

然后我将这些日期作为json传递给客户端。现在,asp.net将日期转换为"\/Date(1410588000000)\/"格式。 (即日期'19 -9-2014'到1410588000000)。当我使用此刻度创建日期时(从1970年的javascript滴答),它将额外增加5.00小时(服务器时区为-5.00)。发生这种情况是因为在将datetime转换为"\/Date(xxxxxxxxx)\/"格式时,.net认为数据库中的日期(即现在使用实体框架的c#datetime)是本地的(-5.00)。所以它创造了+5.00小时的刻度。我怎么能说服.net说时间是在utc?

2 个答案:

答案 0 :(得分:1)

请将您的日期时间转换为任何固定的特定格式,然后在每个地方跟随 所以它会帮助你保持一致性。

写下面的查询

SELECT CONVERT(VARCHAR(30),GETDATE(),113) AS DateConvert;

格式将是“dd MMM yyyy hh:mm:ss:zzz” 这将发送准确的日期时间格式,这将很容易转换。 希望这会对你有所帮助。

现在我们可以使用DateTime.ParseExact将收到的字符串(Date)转换为DateTime

C#代码

  String dateString = "01 Jun 2008 08:30:06:00";
  CultureInfo provider = CultureInfo.InvariantCulture;
  String format = "dd MMM yyyy hh:mm:ss:zzz";
  try {
     DateTime result = DateTime.ParseExact(dateString, format, provider);
  }

由于

答案 1 :(得分:0)

Var date = new Date();

现在日期具有客户端时间的值。

alert(new Date());