今天犯了个低级而且严重的错误,我在获取系统当前时间代码如下:
由于JS中DATE对象获取月份是从0开始的,所以获取当前的月份都是上一个月,我的做法首先是将日期拼好,然后用我们工具类中的方法自动将月份加1。
问题:比如现在是2012-07-31,通过JS获取到的就是2012-06-31,因为6月没有31号,我在使用getNextMonthFullDate方法将月份加1时,方法中会将这个日期重新定义,结果2012-06-31就会被处理成2012-07-01,如果我在加1个月的话,日期就变成2012-08-01,就导致与日期不一致,代码如下:
正确做法:
function getDefaultStartDate(){
//获取默认保单起期
var date = new Date();
var time = date.getYear()+'-'+date.getMonth() +'-'+date.getDate();
time = getNextMonthFullDate(time, 1);
return time;
}
由于JS中DATE对象获取月份是从0开始的,所以获取当前的月份都是上一个月,我的做法首先是将日期拼好,然后用我们工具类中的方法自动将月份加1。
问题:比如现在是2012-07-31,通过JS获取到的就是2012-06-31,因为6月没有31号,我在使用getNextMonthFullDate方法将月份加1时,方法中会将这个日期重新定义,结果2012-06-31就会被处理成2012-07-01,如果我在加1个月的话,日期就变成2012-08-01,就导致与日期不一致,代码如下:
function getNextMonthFullDate(strDate,intCount)
{
var tempDate = new Date(replace(strDate,"-","/"));
if(intCount == null)
{
intCount =1;
}
tempDate.setMonth(tempDate.getMonth() + intCount );
var strReturn = convertFullDateToString(tempDate);
return strReturn;
}
正确做法:
function getDefaultStartDate(){
//获取默认保单起期
var date = new Date();
var time = date.getYear()+'-'+(date.getMonth() + 1) +'-'+date.getDate();
return time;
}