如何用JS取得下一個月的時間
如何用JS取指定天數的日期
如何用JS達到C#的Date
目前原生 JavaScript 並沒有提供客製化處理時間,
如果取得下一個月的時間、前後一個月時間、前後半年時間,或是指定的時間
目前方法有兩種:
1.使用別人寫好的套件
(個人推薦:Moment.js)
2.只能自己乖乖寫
(提供範例是取得下一個月時間,但前後半年時間,或是指定的時間方法是相同的)
let inDate = new Date(dateOri);
// 1 2 3 4 5 6 7 8 9 10 11 12月
let daysInMonth = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
let strYear = inDate.getFullYear();
let strMonth = inDate.getMonth() + 1;
let strDay = inDate.getDate();
//一、解決閏年平年的二月份天數 //平年28天、閏年29天//能被4整除且不能被100整除的為閏年,或能被100整除且能被400整除
if (((strYear % 4) === 0) && ((strYear % 100) !== 0) || ((strYear % 400) === 0)) {
daysInMonth[2] = 29;
}
//二、解決跨年問題
if (strMonth + 1 === 13)
{
strYear += 1;
strMonth = 1;
}
else {
strMonth += 1;
}
//三、解決當月最後一日,例如2.28的下一個月日期是3.31;6.30下一個月日期是7.31;3.31下一個月是4.30
if (strMonth == 2 || strMonth == 4 || strMonth == 6 || strMonth == 9 || strMonth == 11) {
strDay = Math.min(strDay, daysInMonth[strMonth]);
}
else {
if (strDay >= 28) {
strDay = Math.max(strDay, daysInMonth[strMonth]);
}
else {
strDay = Math.min(strDay, daysInMonth[strMonth]);
}
}
//四、給個位數的月、日補零
if (strMonth < 10)
{
strMonth = "0" + strMonth;
}
if (strDay < 10) {
strDay = "0" + strDay;
}
let datastr = strYear + "/" + strMonth + "/" + strDay;
return datastr;
參考來源:JS 获取前一个月的日期
與每個人,一起分享所學到,所用到的,
若有錯誤,請您不吝指教,謝謝大家。