您好我在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;
答案 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)。
答案 4 :(得分:0)
函数getMonth()
将返回0-11之间的范围
您需要在保存之前添加一个。