如何在 JQuery UI Datepicker 中使用不同的日期格式(用于在 html 上显示和存储在数据库中)?

Posted

技术标签:

【中文标题】如何在 JQuery UI Datepicker 中使用不同的日期格式(用于在 html 上显示和存储在数据库中)?【英文标题】:How to use different date formats (for displaying on html and storing in database) in JQuery UI Datepicker? 【发布时间】:2015-12-20 23:21:17 【问题描述】:

我想在我的网页上显示以下日期格式: dd MM, yy(喜欢这个23 September, 2015) 因此我包含以下 javascript

$('#datepicker').datepicker( dateFormat: 'd MM, yy' );

mysql 数据库接受以下日期格式来执行查询: yy-mm-dd(喜欢这个2015-09-23) 在以下代码中,我试图将 MySQL 所需的格式存储在一个变量中,以通过 ajax 调用将其传递给 php

var history_date = $('#datepicker').datepicker( dateFormat: 'yy-mm-dd' ).val();

但是变量history_date返回的是23 September, 2015这样的网页显示格式(不适合MySQL查询)。 请给我一些解决方案来访问显示和数据库的两种不同日期格式。

【问题讨论】:

【参考方案1】:

您通常会使用alternate field。因此,您可以为前端选择一种显示格式,但可以通过 ajax 发送另一个值,以满足您的需求。

$( "#datepicker" ).datepicker(
  dateFormat: 'd MM, yy',
  altField: "#alternate",
  altFormat: "dd-mm-yy"
);

然后您可以从 #alternate dom 对象中获取日期。这可以是一个隐藏的输入字段。

<input type="hidden" id="alternate">

按预期获取 ajax 调用的值。

var history_date = $('#alternate').val();

【讨论】:

【参考方案2】:

我会使用moment.js 来格式化您从日期选择器返回的日期。否则,只需抓住日期并适当地格式化你自己。

var history_date = $('#datepicker').datepicker( dateFormat: 'dd-mm-yy' ).getDate()
var day = history_date.getDate();
var monthIndex = history_date.getMonth()+1;
var year = history_date.getFullYear();
var date_formatted = year+"-"+month+"-"+day;

【讨论】:

以上是关于如何在 JQuery UI Datepicker 中使用不同的日期格式(用于在 html 上显示和存储在数据库中)?的主要内容,如果未能解决你的问题,请参考以下文章

如何触发 jQuery UI DatePicker onclick?

如何通过 npm jquery-ui-datepicker-with-i18n 导入 laravel?

如何更改 jQuery UI datepicker 的主题?

如何在 jquery-ui datepicker 中禁用动画?

如何防止在移动设备上显示 Jquery UI datepicker/timepicker

使用 jquery 验证和 jquery-ui datepicker