代码直接贴上来的,这博客里也不知道写什么了,总不能天天写安装各种软件吧,唉~

解释下这段代码的作用吧,工作中确实可以用到的,虽然很简单。

实际环境是TDI  使用SAP R/3 function 去HR那边同步数据时,需要取出每天disable_person的数据。那边需要传过去的参数是START_DATE,END_DATE。

以前使用的是 getFullYear();  getMonth();  getMonth()   拼接的出来的END_DATE,   -1 就是START_DATE  

后来发现月初的时候 比如20100901时 –1 就会变成20100900

无法给SAP 传过去准确的时间。所以编写如下代码,可以实现闰月,特殊时间日期等的时间联动。

 

PS:代码最初编写者为彭强。转载请注明出处哈。

 

 

var t = new Date();

var y = t.getFullYear();

var m = t.getMonth() + 1;

var d = t.getDate();

if (m < 10) m = "0" + m;

if (d < 10) d = "0" + d;

function IsPinYear(year)

{

if (0 == year%4 && (year%100 !=0 || year%400 == 0)) {

return true;

} else {

return false;

}

}

function getMaxDays(year, month) {

var days = "";

if (month == "01" || month == "03" || month == "05" || month =="07" || month == "08" || month == "10" || month == "12") {

days = "31";

}else if (month == "04" || month == "06" || month == "09" || month == "11") {

days = "30";

}

if(month == "02") {

if(IsPinYear(year) == true) {

days = "29";

} else {

days = "28";

}

}

return days;

}

function getYesterday (year, month, day) {

var yes_d = "";

var yes_m = "";

var yes_y = "";

if(day == "01") {

if (month == "01") {

yes_m = "12";

yes_y = year - 1;

yes_d = getMaxDays(yes_y, yes_m);       

if(yes_d < 10) yes_d = "0" + yes_d;               

} else {

yes_m = month - 1;

if(yes_m < 10) yes_m = "0" + yes_m;

yes_y = year;

yes_d = getMaxDays(yes_y, yes_m);

if(yes_d < 10) yes_d = "0" + yes_d;       

}

return yes_y + yes_m + yes_d + "";

} else {

var yes_d = day - 1;

var yes_m = month;

var yes_y = year;               

if(yes_d &lt; 10) yes_d = "0" + yes_d;       

return yes_y + yes_m + yes_d + "";

}

}

 

var currTime = y + m + d + "";

var yesterday = getYesterday(y, m, d);