引导日期时间选择器显示格式与值格式

Chr*_*nch 5 javascript jquery date twitter-bootstrap

我使用以下插件来选择日期和时间.

https://eonasdan.github.io/bootstrap-datetimepicker/

它在大多数情况下都很好用.但是在某些情况下我在输入字段中显示日期为MM/DD/YYYY但是当我提交给服务器时,我需要它作为YYYY-MM-DD

完成此任务的最佳方法是什么?我正在考虑覆盖表单的提交功能.但我有点想避免这种情况,因为我想以某种方式使用他们的事件来完成它所以我可以在一个地方包含代码,而不是为每个表单添加一堆逻辑.

fir*_*pol 5

Ashish和Chris代码可能有效,但由于Bootstrap 3 Datepicker需要Moment.js,为什么不使用Moment.js Parse(从您为datepicker选择的自定义或语言环境格式解析日期)和Moment.js格式(转换日期) ISO格式,例如发送到ASP.NET控制器或接受DateTime格式的其他端点?

因此代码会更短,如下所示:

  $('#datetimepicker1').on("dp.change",
    function (e) {
      var submitDateString = '';
      if (e.Date) {
        submitDateString = e.Date.format();
      }
      $("#datetime-submit").val(submitDateString);
    });
Run Code Online (Sandbox Code Playgroud)

注意(见下面的评论):e.Date可能需要e.date工作.

说明:

  • dp.change事件(e)有一个Date属性,它是一个时刻对象,所以你甚至不需要关心你为datepicker选择的日期格式.
  • 当清除日期选择器时,e.Date为false,因此if检查.
  • $("#datepicker1")是我绑定bootstrap datepicker的输入字段.
  • $("#datetime-submit")是我隐藏的输入字段.

要回答OP,如果要提交的格式为"YYYY-MM-DD",则使用:

submitDateString = e.Date.format("YYYY-MM-DD");
Run Code Online (Sandbox Code Playgroud)

我刚刚发现Moment.js并喜欢它.使用它可以更轻松地进行日期分析和显示.


Ash*_*iya 0

我也面临同样的问题。我使用隐藏控件解决了这个问题。

显示输入字段 显示日期(MM/DD/YYYY)

并取 YYYY/MM/DD 中​​归档的其他一个隐藏值

并在显示日期选择器的更改事件中使用 java 脚本将 MM/DD/YYYY 转换为 YYYY/MM/DD 格式并放入隐藏值格式字段