代碼直接貼上來的,這博客裏也不知道寫什麼了,總不能天天寫安裝各種軟件吧,唉~
解釋下這段代碼的作用吧,工作中確實可以用到的,雖然很簡單。
實際環境是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 < 10) yes_d = "0" + yes_d;
return yes_y + yes_m + yes_d + "";
}
}
var currTime = y + m + d + "";
var yesterday = getYesterday(y, m, d);