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

时间:2015-09-23 14:58:11

标签: javascript jquery mysql jquery-ui datepicker

我想在我的网页上显示以下日期格式:
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查询)。

请给我一些解决方案,以便为显示和数据库访问两种不同的日期格式。

2 个答案:

答案 0 :(得分:2)

您通常会使用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();

答案 1 :(得分:-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;