如何在 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 中禁用动画?