Asp.net mvc 如何在.net核心预订系统中最好地存储和转换日期和时间?

Asp.net mvc 如何在.net核心预订系统中最好地存储和转换日期和时间?,asp.net-mvc,datetime,asp.net-core-mvc,Asp.net Mvc,Datetime,Asp.net Core Mvc,我正在用.NETCore2.0编写一个房间预订系统 我将StartTime和EndTime存储为DateTime变量,但是内置的HTML DateTime字段很笨重,对用户不友好,因此我希望这些值在页面上显示为日期字段和时间字段 但我想知道实现这一点的最佳方式是什么。我应该: 在模型中创建一些只读变量(我可以在不创建数据库字段的情况下执行此操作吗?) 创建单独的表单字段(使用jQuery datepicker),然后使用JavaScript将输入值写入存储完整日期时间的隐藏字段 (注意,我没

我正在用.NETCore2.0编写一个房间预订系统

我将StartTime和EndTime存储为DateTime变量,但是内置的HTML DateTime字段很笨重,对用户不友好,因此我希望这些值在页面上显示为日期字段和时间字段

但我想知道实现这一点的最佳方式是什么。我应该:

  • 在模型中创建一些只读变量(我可以在不创建数据库字段的情况下执行此操作吗?)

  • 创建单独的表单字段(使用jQuery datepicker),然后使用JavaScript将输入值写入存储完整日期时间的隐藏字段


(注意,我没有选择更改数据库字段,因为可以想象预订可能会超过午夜。JavaScript会假设凌晨结束时间是第二天。)

首先,使用
DateTimeOffset
而不是
DateTime
作为数据库支持的日期/时间属性。无论您最终是以UTC还是本地时间存储这些值,只要您有时区,就可以访问您需要的任何其他语言环境。相信我,从长远来看,这将是无价的

就编辑而言,将您的输入设置为本地的
datetime
类型。这实际上并没有得到任何浏览器的支持,但它至少具有更多的语义价值,谁知道呢,也许有一天浏览器最终会摆脱他们的集体后腿,用它做点什么。将其拆分为单独的日期和时间字段很有诱惑力,这样您就可以利用内置的浏览器控件,但它笨重且容易出错。使用提供良好日期和时间控件的JavaScript库来逐步增强输入。目前我最喜欢的是。它是轻量级的,支持各种场景和配置选项,并且是本地化的