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

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

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

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

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

var nowDate=new Date();

var year=nowDategetFullYear();

var month=nowDategetMonth()+1;//月份是从0开始的,所以需要加1

var day=nowDategetDate();

consolelog(year+"年"+month+"月"+day+"日");

输出如下:

var date=new Date();

var nowd=dategetFullYear()+'-'+(dategetMonth() + 1)+'-'+dategetDate(); //2013-1-17

var nextd=dategetFullYear()+'-'+(dategetMonth() + 2)+'-'+dategetDate(); //2013-2-17

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

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;    

}

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

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"));

仅针对这个问题来说,不需要那么大量的代码即可完成 方案1(适用于中国标准时间): var date = new Date(+new Date()+836001000)toISOString()replace(/T/g,' ')replace(/\[\d]{3}Z/,'')方案2(只用于题目中所述的格式转换)

var myDate = new Date();

myDatetoLocaleDateString();可以获取当前日期

myDatetoLocaleTimeString(); 可以获取当前时间

扩展:

myDategetYear(); //获取当前年份(2位)

myDategetFullYear(); //获取完整的年份(4位,1970-)

myDategetMonth(); //获取当前月份(0-11,0代表1月)

myDategetDate(); //获取当前日(1-31)

myDategetDay(); //获取当前星期X(0-6,0代表星期天)

myDategetTime(); //获取当前时间(从197011开始的毫秒数)

myDategetHours(); //获取当前小时数(0-23)

myDategetMinutes(); //获取当前分钟数(0-59)

myDategetSeconds(); //获取当前秒数(0-59)

myDategetMilliseconds(); //获取当前毫秒数(0-999)

myDatetoLocaleString( ); //获取日期与时间

var d=new Date();

d;//年月日时分秒

dgetMonth();//本月

dgetDay();//本周

dgetDate();//本日

以上就是关于JS获取日期的时候数字形式月份比实际大一个月为啥全部的内容,包括:JS获取日期的时候数字形式月份比实际大一个月为啥、通过date对象的常用的方法获取当前日期的,年,月,日,并组合成中文日期进行显示,JS内容求解、js 获取一个月日期范围,就比如我是今天是2013-1-17 我想要获取日期的范围是2013-1-17至2013-2-17,怎么做等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/web/9541478.html

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

发表评论

登录后才能评论

评论列表(0条)

保存