JS获取日期的时候数字形式月份比实际大一个月为啥

JS获取日期的时候数字形式月份比实际大一个月为啥,第1张

js是用0到11来表示月份的(但日却是从1起算的),这是个大坑,初学者很容易入坑

比方说要得到一个2月27日的日期应该这样:

var ifuture = new Date(2019,1,27,20,35,3);

如果只是要这个功能 , 就不要跟日期类打交道了直接算就好了

function getMonths(date1 , date2){

    //用-分成数组

    date1 = date1split("-");

    date2 = date2split("-");

    //获取年,月数

    var year1 = parseInt(date1[0]) , 

        month1 = parseInt(date1[1]) , 

        year2 = parseInt(date2[0]) , 

        month2 = parseInt(date2[1]) , 

        //通过年,月差计算月份差

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

    return months;    

}

javascript 自带有个对象(构造函数),Date()下面是代码:

var myDate = new Date(); //实例一个时间对象;

myDategetFullYear(); //获取系统的年;

myDategetMonth()+1; //获取系统月份,由于月份是从0开始计算,所以要加1

myDategetDate(); // 获取系统日,

myDategetHours(); //获取系统时,

myDategetMinutes(); //分

myDategetSeconds(); //秒

//不知道这是不是你想要的,这不需要转换为时间格式

function getNums(str){

    var reg = /(\d+)[^\d](\d+)[^\d](\d+)/g;

    var numArr = regexec(str);

    return [parseInt(numArr[1]),parseInt(numArr[2])-1,parseInt(numArr[3])];

}

function getMonths(s1,s2){

    var a1 = getNums(s1);

    var a2 = getNums(s2);

    return (a2[0]-a1[0])12+a2[1]-a1[1];

}

consolelog(getMonths("2017-01-01","2018-12-12"));

var date = new Date();

var year = dategetFullYear();

var month = dategetMonth()+1;

var day = dategetDate();

var hour = dategetHours();

var minute = dategetMinutes();

var second = dategetSeconds();

alert(year+'年'+month+'月'+day+'日 '+hour':'+minute+':'+second)

以上就是关于JS获取日期的时候数字形式月份比实际大一个月为啥全部的内容,包括:JS获取日期的时候数字形式月份比实际大一个月为啥、求JS两个日期之间的月份数、javascript 分别读取时间中的年、月、日、时、分、秒的方法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/10053814.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-04
下一篇2023-05-04

发表评论

登录后才能评论

评论列表(0条)

    保存