使用MVC获取DateTime类型数据

时间:2015-07-21 14:45:40

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

需要解决的问题:

  • 从MVC应用程序中获取时间和日期

我的具体问题:我有一个停车管理应用程序。由于可以预先预订停车位,我需要知道停车开始时间和日期。对于我的模型,我使用DateTime,因为MSDN将其宣传为全功能时间和日期数据类型:

  

.NET Framework DateTime类提供了一个功能齐全的界面,用于编写处理时间的程序。

我的研究:我已经针对这类问题搜索了答案或典型解决方案(最佳实践),而且我得到的几乎就是:

  • 全球化问题
  • 时区问题
  • 不同的日期格式

但没有考虑如何使用MVC应用程序方便地获取日期和时间。

我找到的最接近的答案是Scott Hanselman的2009年解决方案 - http://www.hanselman.com/blog/SplittingDateTimeUnitTestingASPNETMVCCustomModelBinders.aspx

人们倾向于使用的其他解决方案是不同的jQuery插件。

对我而言,这些解决方案似乎过于简单。因为我不知道还有什么要问,以及这些是否是唯一的解决方案 - 我的问题是:

  • 我有什么选择获得MVC的时间和日期 - 最佳做法?

在我的模型中,我使用:

[DataType(DataType.DateTime), DisplayFormat(DataFormatString = "{0:HH:mm dd/MM/yyyy}", ApplyFormatInEditMode = true)]
    public DateTime? ParkingStartTime { get; set; }

在我看来,我使用:

 <div class="editor-label">
        @Html.LabelFor(vm => vm.newCarOnParkingSpot.ParkingStartTime)
    </div>
    <div class="editor-field">
        @Html.EditorFor(vm => vm.newCarOnParkingSpot.ParkingStartTime)
        @Html.ValidationMessageFor(vm => vm.newCarOnParkingSpot.ParkingStartTime)
    </div>

此解决方案为我提供了HTML5日期选择器,但没有时间插入选项:http://i.stack.imgur.com/fGPTV.png

这是我的第一个问题,所以如果我误解了这个问题,请保持温和。

1 个答案:

答案 0 :(得分:0)

因为@SLC建议我使用jQuery。我选择了jQuery DateTimePicker http://xdsoft.net/jqplugins/datetimepicker/

根据SLC:

  

对此没有最佳实践,jquery日期选择器可以正常工作并且非常简单

他是对的。我在7分钟内解决了问题。

我所做的只是:

  • 将jQuery DateTimePicker文件添加到我的项目中(来自上面的站点)
  • 按照该站点提供的说明(将2个脚本和1个css文件添加到cshtml文件中,在所需的输入字段中添加了一个id,并在之前添加的id上调用了jQuery函数 - Voila!)
  • 花费0分钟将数据保存到使用DateTime数据类型的数据库

我觉得改进的地方是我的jQuery函数调用。有没有比这更好的方法?:

<script type="text/javascript">
$(document).ready(function () {
    jQuery('#datetimepicker').datetimepicker();
});