第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

JavaScript中兩個(gè)日期之間的月份差異

JavaScript中兩個(gè)日期之間的月份差異

尚方寶劍之說 2019-07-22 20:00:01
JavaScript中兩個(gè)日期之間的月份差異如何計(jì)算JavaScript中的兩個(gè)date()對象的差異,同時(shí)只返回差異中的月數(shù)?任何幫助都是很好的:)
查看完整描述

3 回答

?
暮色呼如

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超9個(gè)贊

如果您不考慮這個(gè)月中的某一天,那么到目前為止,這是一個(gè)更簡單的解決方案。

function monthDiff(dateFrom, dateTo) {
 return dateTo.getMonth() - dateFrom.getMonth() + 
   (12 * (dateTo.getFullYear() - dateFrom.getFullYear()))}//examplesconsole.log(monthDiff(new Date(2000, 01), new Date(2000, 02))) // 1console.log(monthDiff(new Date(1999, 02), new Date(2000, 02))) // 12 full yearconsole.log(monthDiff(new Date(2009, 11), new Date(2010, 0))) // 1

請注意,月份索引是基于0的。這意味著January = 0December = 11.


查看完整回答
反對 回復(fù) 2019-07-22
?
忽然笑

TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超5個(gè)贊

有時(shí),你可能想得到兩個(gè)日期之間的月份的數(shù)量,完全忽略了日期部分。例如,如果你有兩個(gè)日期-2013/06/21和2013/10/18-而你只關(guān)心2013/06和2013/10年度的部分,以下是設(shè)想和可能的解決方案:

var date1=new Date(2013,5,21);//Remember, months are 0 based in JSvar date2=new Date(2013,9,18);var year1=date1.getFullYear();var year2=date2.getFullYear();var month1=date1.getMonth();var month2=date2.getMonth();if(month1===0){ //Have to take into account
  month1++;
  month2++;}var numberOfMonths;

1.如果您只想要兩個(gè)日期之間的月份數(shù)(不包括月份1和月份2)

numberOfMonths = (year2 - year1) * 12 + (month2 - month1) - 1;

2.如果你想包括這兩個(gè)月中的任何一個(gè)

numberOfMonths = (year2 - year1) * 12 + (month2 - month1);

3.如果你想把這兩個(gè)月都包括進(jìn)去

numberOfMonths = (year2 - year1) * 12 + (month2 - month1) + 1;


查看完整回答
反對 回復(fù) 2019-07-22
?
紫衣仙女

TA貢獻(xiàn)1839條經(jīng)驗(yàn) 獲得超15個(gè)贊

“差額中的月數(shù)”的定義有很多解釋。*-)

您可以從JavaScriptDate對象中獲取年份、月份和日期。根據(jù)您要尋找的信息,您可以使用這些信息來計(jì)算出兩個(gè)時(shí)間點(diǎn)之間的時(shí)間間隔是多少個(gè)月。

例如,在袖口上,這會(huì)發(fā)現(xiàn)有多少人。整整幾個(gè)月介于兩個(gè)日期之間,不包括部分月(例如,不包括每個(gè)月):

function monthDiff(d1, d2) {
    var months;
    months = (d2.getFullYear() - d1.getFullYear()) * 12;
    months -= d1.getMonth() + 1;
    months += d2.getMonth();
    return months <= 0 ? 0 : months;}monthDiff(
    new Date(2008, 10, 4), // November 4th, 2008
    new Date(2010, 2, 12)  // March 12th, 2010);// Result: 15: December 2008, all of 2009, and Jan & Feb 2010monthDiff(
    new Date(2010, 0, 1),  // January 1st, 2010
    new Date(2010, 2, 12)  // March 12th, 2010);// Result: 1: February 2010 is the only full month between themmonthDiff(
    new Date(2010, 1, 1),  // February 1st, 2010
    new Date(2010, 2, 12)  // March 12th, 2010);// Result: 0: There are no *full* months between them

(請注意,JavaScript中的月份值以0=1月開始。)

將小數(shù)月包括在上面要復(fù)雜得多,因?yàn)橐粋€(gè)典型的二月份的三天比八月份的三天(~10.714%)要大(~9.677%),當(dāng)然二月份也是一個(gè)移動(dòng)的目標(biāo),這取決于它是否是閏年。

還有一些日期和時(shí)間庫可用于JavaScript,這可能使這類事情變得更容易。


查看完整回答
反對 回復(fù) 2019-07-22
  • 3 回答
  • 0 關(guān)注
  • 549 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)