2011-12-20 143 views
1

在我的MVC视图中,我将日期的用户输入并将该值传递给控制器​​操作。时间戳和JsonDate格式转换

我传递的日期进入带有时间戳的控制器参数。稍后在控制器代码中,我将该日期参数与数据库中的日期值进行比较。数据库日期值是JSON日期格式。

我的问题,二折...

  1. 如何获得刚过到控制器,不带时间标记的日期。或者我怎样才能将带有时间戳的日期格式转换为mm/dd/yyyy格式。

  2. 一旦我这样做,我该如何比较两个值。一个日期是在常规mm/dd/yyyy格式和其他日期(从数据库)是JSON日期格式提前"/Date(1324414956395)/"

感谢。

+0

为什么地球上你存储JSON格式的日期在你的数据库,而不是使用日期时间列?我会建议你重新思考你的数据库设计。你的问题并没有真正与ASP.NET MVC相关。 – 2011-12-20 21:38:32

+0

我正在使用RavenDB作为我的数据库。它的早期版本中有JSON格式的日期。 – ZVenue 2011-12-20 21:40:33

+0

我对RavenDB并不熟悉,但我强烈怀疑它的.NET客户端驱动程序具有一些DateTime转换功能,无论它如何存储日期。我的意思是,如果你从数据库中取出'/ Date(1324414956395)/“'字符串而不是DateTime实例,那就太荒谬了。我简直不敢相信。无论如何,我的观点是:你的问题与asp.net-mvc无关。请使用您正在使用的数据访问特定技术进行重新标记。 – 2011-12-20 21:41:58

回答

1

您可以创建一个方法来做到这一点:

 private static DateTime ConvertFromUnixTimestamp(double timestamp) 
     { 

      var original = new DateTime(1970, 1, 1, 0, 0, 0, 0); 

      return original.AddSeconds(timestamp); 

     } 
+0

你将字符串的1324414956395部分作为双精度来传递 – 2011-12-21 18:08:31

+0

我想将mm/dd/yyyy转换为“/ Date(1324414956395)/”格式。 。而不是其他的方式..你在我的情况下传递的“时间戳”是以mm/dd/yyyy格式。我如何在我的情况下做到这一点? – ZVenue 2011-12-28 16:17:48

+0

如果您尝试过(今天 - 新的DateTime(1970,1,1,0,0,0,0)),那么该怎么办?TotalSeconds Today将是您从中转换的日期。然后取出。并将/ date()添加到字符串中。 – 2011-12-28 16:33:35