【js】常用的日期操作

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/unionz/article/details/82224955

目录

1、基本日期操作

2、根据出生日期获取周岁

3、距离活动截止还差几小时几分几秒(倒计时)

         4、input   type="date"   赋值以及设置最大值和最小值



1、基本日期操作

var myDate = new Date();

myDate.getYear(); //获取当前年份(从1900年开始算起)
myDate.getFullYear(); //获取完整的年份(4位,1970)
myDate.getMonth(); //获取当前月份(0-11,0代表1月)
myDate.getDate(); //获取当前日(1-31)
myDate.getDay(); //获取当前星期X(0-6,0代表星期天)
myDate.getTime(); //获取当前时间(从1970.1.1开始的毫秒数)
myDate.getHours(); //获取当前小时数(0-23)
myDate.getMinutes(); //获取当前分钟数(0-59)
myDate.getSeconds(); //获取当前秒数(0-59)
myDate.getMilliseconds(); //获取当前毫秒数(0-999)
myDate.toLocaleDateString(); //获取当前日期
var mytime=myDate.toLocaleTimeString(); //获取当前时间
myDate.toLocaleString( ); //获取日期与时间

2、根据出生日期获取周岁

//2010-01-01
function getAge(strBirthday)
        {
            var returnAge;
            var strBirthdayArr=new Date(strBirthday);
            var birthYear = strBirthdayArr.getFullYear();

            var birthMonth = strBirthdayArr.getMonth() + 1;
            var birthDay = strBirthdayArr.getDate();

            var d = new Date();
            var nowYear = d.getFullYear();
            var nowMonth = d.getMonth() + 1;
            var nowDay = d.getDate();

            if(nowYear == birthYear)
            {
                returnAge = 0;//同年 则为0岁
            }
            else
            {
                var ageDiff = nowYear - birthYear ; //年之差
                if(ageDiff > 0)
                {
                    if(nowMonth == birthMonth)
                    {
                        var dayDiff = nowDay - birthDay;//日之差
                        if(dayDiff < 0)
                        {
                            returnAge = ageDiff - 1;
                        }
                        else
                        {
                            returnAge = ageDiff ;
                        }
                    }
                    else
                    {
                        var monthDiff = nowMonth - birthMonth;//月之差
                        if(monthDiff < 0)
                        {
                            returnAge = ageDiff - 1;
                        }
                        else
                        {
                            returnAge = ageDiff ;
                        }
                    }
                }
                else
                {
                    returnAge = -1;//返回-1 表示出生日期输入错误 晚于今天
                }
            }

            return returnAge;//返回周岁年龄

        }

3、距离活动截止还差几小时几分几秒(倒计时)

//2029-03-03
var endTime = function (startTime) {

    setInterval(
        function(){

            var str = '';
            var date1 = new Date(startTime);  //开始时间
            var date2 = new Date();     //结束时间

            var date3 = date1.getTime() - date2.getTime();   //时间差的毫秒数
            if (date3>0){
                // //计算相差的年数
                // var years = Math.floor(date3 / (12 * 30 * 24 * 3600 * 1000));
                // //计算相差的月数
                var leave = date3 % (12 * 30 * 24 * 3600 * 1000);
                // var months = Math.floor(leave / (30 * 24 * 3600 * 1000));
                // //计算出相差天数
                var leave0 = leave % (30 * 24 * 3600 * 1000);
                var days = Math.floor(date3 / (24 * 3600 * 1000));
                //计算出小时数
                var leave1 = leave0 % (24 * 3600 * 1000);     //计算天数后剩余的毫秒数
                var hours = Math.floor(leave1 / (3600 * 1000));
                //计算相差分钟数
                var leave2 = leave1 % (3600 * 1000);         //计算小时数后剩余的毫秒数
                var minutes = Math.floor(leave2 / (60 * 1000));
                //计算相差秒数
                var leave3 = leave2 % (60 * 1000);       //计算分钟数后剩余的毫秒数
                var seconds = Math.round(leave3 / 1000);
                if (days > 0){
                    str += '<span>'+ days +'</span>天';
                }
                if (hours > 0){
                    str += '<span>'+ hours +'</span>小时';
                }
                str += '<span>'+ minutes +'</span>分钟<span>'+ seconds +'</span>秒';
            }else {
                str = '已过期'
            }

            console.log(str)
        },1000
    );


};




4、input   type="date"   赋值以及设置最大值和最小值

/* type="date" 设置value,min,max的时候,日期格式一定要是1990-01-01这种格式,补零和- */
<input type="date" id="birthday" min="1970-01-01" max="1990-01-01" value="">

/* 动态设置最大日期为今天 */
 function setMaxDate() {
            var date_now = new Date();
            var year = date_now.getFullYear();
            //得到当前月份
            //注:
            //  1:js中获取Date中的month时,会比当前月份少一个月,所以这里需要先加一
            //  2: 判断当前月份是否小于10,如果小于,那么就在月份的前面加一个 '0' , 如果大于,就显示当前月份
            var month = date_now.getMonth()+1 < 10 ? "0"+(date_now.getMonth()+1) : (date_now.getMonth()+1);
            //得到当前日子(多少号)
            var date = date_now.getDate() < 10 ? "0"+date_now.getDate() : date_now.getDate();
            //设置input标签的max属性
            $("#birthday").attr("max",year+"-"+month+"-"+date);
}

/* 动态给value赋值 */
/*2017-2-13*/
 function setValue(time)
        {
            var time1=time.replace(new RegExp(/-/gm) ,"/");
      
            /*new Date的时候发现时间值显示为Invalid Date;原因是浏览器不兼容,需要将'-'转换为'/'就可以了 */
            var date_now = new Date(time1);

            var year = date_now.getFullYear();

            var month = date_now.getMonth()+1 < 10 ? "0"+(date_now.getMonth()+1) : (date_now.getMonth()+1);
            var date = date_now.getDate() < 10 ? "0"+date_now.getDate() : date_now.getDate();

            $("#birthday").val(year+"-"+month+"-"+date);
        }

猜你喜欢

转载自blog.csdn.net/unionz/article/details/82224955