jquery ajax中的日期问题

时间:2015-04-22 07:36:04

标签: javascript jquery ajax

您好我在jquery ajax中完成了日期格式。我从数据库获得了值,并将dateformat转换为dd-MM-YYYY。现在的问题是,我上个月。例如:数据库值是2015-04-02,转换dateformat后我得到了02-03-2015。请帮助我。我的编码是。

var pcd_date = new Date(data.pcd_date),
yr = pcd_date.getFullYear(),
month = +pcd_date.getMonth() < 10 ? '0' + pcd_date.getMonth() : pcd_date.getMonth() ,
day = +pcd_date.getDate() < 10 ? '0' + pcd_date.getDate() : pcd_date.getDate(),
pcddate = day + '-' + month + '-' + yr;

5 个答案:

答案 0 :(得分:3)

它给出0到11之间的结果。

来自w3school

  

getMonth()方法根据当地时间返回指定日期的月份(从0到11)。

你应该将1添加到getMonth(),使其从1到12,如下所示:

var pcd_date = new Date(data.pcd_date),
yr = pcd_date.getFullYear(),
month = +(pcd_date.getMonth() +1 ) < 10 ? '0' + (pcd_date.getMonth() +1 ) : (pcd_date.getMonth() +1 ),
day = +pcd_date.getDate() < 10 ? '0' + pcd_date.getDate() : pcd_date.getDate(),
pcddate = day + '-' + month + '-' + yr;

或做一次:

var pcd_date = new Date(data.pcd_date),
yr = pcd_date.getFullYear(),
m = pcd_date.getMonth() +1,
month = +m < 10 ? '0' + m : m,
day = +pcd_date.getDate() < 10 ? '0' + pcd_date.getDate() : pcd_date.getDate(),
pcddate = day + '-' + month + '-' + yr;

答案 1 :(得分:2)

因为getMonth()返回基于0的值

  

getMonth()方法返回指定日期的月份   根据当地时间,作为从零开始的值(零表示   今年的第一个月)。

var pcd_date = new Date(data.pcd_date),
    yr = pcd_date.getFullYear(),
    month = pcd_date.getMonth() + 1,
    day = +pcd_date.getDate() < 10 ? '0' + pcd_date.getDate() : pcd_date.getDate();
month = month < 10 ? '0' + month : month
var pcddate = day + '-' + month + '-' + yr;

答案 2 :(得分:1)

在javascript中,1月由0表示,12月由11表示。您需要在getMonth返回的值中加1。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getMonth

答案 3 :(得分:1)

请替换以下代码:

pcd_date.getMonth()

pcd_date.getMonth() + 1

因为getMonth()方法根据当地时间返回指定日期的月份(从0到11)。

http://www.w3schools.com/jsref/jsref_getmonth.asp

答案 4 :(得分:0)

函数getMonth()将返回0-11之间的范围

您需要在保存之前添加一个。