美文网首页
js转换Date日期格式

js转换Date日期格式

作者: hao_developer | 来源:发表于2022-09-17 11:51 被阅读0次
      时间的转换:
    
      一天=24小时 =1440分=86400秒=86400000毫秒;
    
      一小时=60分 =3600秒=3600000毫秒;
    
      一分= 60秒 =60000毫秒
    
      一秒 =1000毫秒
    

    javascript中日期的最简单格式化

    // 假设要转换的日期数据来源是date(一个timestamp)
    let date = Date.now()
    // 1574141546000
    
    let strDate = (new Date(date)).toLocaleDateString()
    console.log(strDate)
    // 打印结果:"2019/11/19"
    
    let strTime = (new Date(date)).toLocaleTimeString()
    console.log(strTime)
    // 打印结果:"13:32:26"
    
    let strDateTime = (new Date(date)).toLocaleString()
    console.log(strDateTime)
    // 打印结果:"2019/11/19 13:32:26"
    

    例:

    var myDate = new Date();
    
    myDate.getYear(); //获取当前年份(2位)
    
    myDate.getFullYear(); //获取完整的年份(4位,1970-????)
    
    myDate.getMonth(); //获取当前月份(0-11,0代表1月)         // 所以获取当前月份是myDate.getMonth()+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( ); //获取日期与时间
     
    ==========================================================================
     
    JS获取当前时间戳的方法-JavaScript 获取当前毫秒时间戳有以下三种方法:
     
    var timestamp =Date.parse(new Date());    结果:1280977330000       //不推荐; 毫秒改成了000显示
     
    var timestamp =(new Date()).valueOf();       结果:1280977330748       //推荐; 
     
    var timestamp=new Date().getTime();         结果:1280977330748        //推荐; 
     
     
     
    js中单独调用new Date();  显示这种格式  Mar 31 10:10:43 UTC+0800 2012
     
    但是用new Date() 参与计算会自动转换为从1970.1.1开始的毫秒数
     
    --------------------------------------------------------------------------------------------------
     
    将字符串形式的日期转换成日期对象
     
    var strTime="2011-04-16";    //字符串日期格式           
    var date= new Date(Date.parse(strTime.replace(/-/g,  "/")));      //转换成Data();
     
    --------------------------------------------------------------------------------------------------
     
    new Date() ;     //参数可以为整数; 也可以为字符串; 但格式必须正确
     
    new Date(2009,1,1);       //正确
     
    new Date("2009/1/1");    //正确
     
    new Date("2009-1-1");    //错误
     
    new Date( year, month, date, hrs, min, sec)  按给定的参数创建一日期对象
      参数说明:
      year的值为:需设定的年份-1900。例如需设定的年份是1997则year的值应为97,即1997-1900的结果。所以Date中可设定的年份最小为1900;
      month的值域为0~11,0代表1月,11表代表12月;
      date的值域在1~31之间;
      hrs的值域在0~23之间。从午夜到次日凌晨1点间hrs=0,从中午到下午1点间hrs=12;
      min和sec的值域在0~59之间。
      例 Date day=new Date(11,3,4);
      //day中的时间为:04-Apr-11 12:00:00 AM
     
     
           另外,还可以给出不正确的参数。
      例 设定时间为1910年2月30日,它将被解释成3月2日。
      Date day=new Date(10,1,30,10,12,34);
      System.out.println("Day's date is:"+day);
      //打印结果为:Day's date is:Web Mar 02 10:13:34 GMT+08:00 1910
    

    有时候做项目会用到js的date日期格式,因为Date()返回的格式不是我们需要的,

    Date()返回格式:

    Thu Mar 19 2015 12:00:00 GMT+0800 (中国标准时间)
    

    而我们则需要这样的格式:

    2015-3-19 12:00:00
    

    除非是在后台处理好时间格式,然后在页面直接显示。

    那如何用js格式化date日期值呢?

    1.日期格式转为日期标准字符串:2015-03-19

    var formatDate = function (date) {  
        var y = date.getFullYear();  
        var m = date.getMonth() + 1;  
        m = m < 10 ? '0' + m : m;  
        var d = date.getDate();  
        d = d < 10 ? ('0' + d) : d;  
        return y + '-' + m + '-' + d;  
    };  
    

    2.js方法返回值:2015-03-19 12:00:00

    var formatDateTime = function (date) {
                    var y = date.getFullYear();
                    var m = date.getMonth() + 1;
                    m = m < 10 ? ('0' + m) : m;
                    var d = date.getDate();
                    d = d < 10 ? ('0' + d) : d;
                    var h = date.getHours();
                    h=h < 10 ? ('0' + h) : h;
                    var minute = date.getMinutes();
                    minute = minute < 10 ? ('0' + minute) : minute;
                    var second=date.getSeconds();
                    second=second < 10 ? ('0' + second) : second;
                    return y + '-' + m + '-' + d+' '+h+':'+minute+':'+second;
                };
    
    调用:formatDate(Date())   formatDate(Date())
    

    3.时间戳转为日期格式

     //时间戳转日期格式
            var formatDateTime3 = function(time, format){
                var t = new Date(time);
                var tf = function(i){return (i < 10 ? '0' : '') + i};
                return format.replace(/yyyy|MM|dd|HH|mm|ss/g, function(a){
                    switch(a){
                        case 'yyyy':
                            return tf(t.getFullYear());
                            break;
                        case 'MM':
                            return tf(t.getMonth() + 1);
                            break;
                        case 'mm':
                            return tf(t.getMinutes());
                            break;
                        case 'dd':
                            return tf(t.getDate());
                            break;
                        case 'HH':
                            return tf(t.getHours());
                            break;
                        case 'ss':
                            return tf(t.getSeconds());
                            break;
                    }
                })
            };
    

    4.时间格式字符串转为时间戳(毫秒)

    var time1=‘2016-01-01 17:22:37’;
    var date=new Date(time1.replace(/-/g, '/'));  //开始时间
    var time2=date.getTime();
    

    如何将2015-03-12 12:00 转换成标准时间()?

    js方法返回值:Thu Mar 19 2015 12:00:00 GMT+0800 (中国标准时间)
    var parserDate = function (date) {  
        var t = Date.parse(date);  
        if (!isNaN(t)) {  
            return new Date(Date.parse(date.replace(/-/g, "/")));  
        } else {  
            return new Date();  
        }  
    };  
    
    调用:parserDate("2015-03-19 12::00:00")
    

    5.判断时间间隔不超过24个小时

    JS中字符转日期

    var remindTime = "2008-04-02 10:08:44"; 
    
    直接new Date(remindTime ) 即可。
    
    
    var date1=new Date("2004/09/16 20:08:00");
    var date2=new Date("2004/09/17 20:08:00");
    var date3=(date2.getTime()-date1.getTime())/1000;   //相差秒数
    String tt="2015-11-25 18:18:18 - 2015-11-26 12:09:27";  
    String start=tt.substring(0,19);  
    String end=tt.substring(22,tt.length());  
     
     var startTime=$("#searchDateRange").val().substring(0,19).replace(/-/g, '/');
            var endTime=$("#searchDateRange").val().substring(22,41).replace(/-/g, '/');
            var date1=new Date(startTime);  //开始时间
            var date2=new Date(endTime);    //结束时间
            var date3=date2.getTime()-date1.getTime()  //时间差的毫秒数
            if(date3>60*60*24*1000){
              alert("开始时间与结束时间间隔大于24小时!");
              return false;
            }
    

    相关文章

      网友评论

          本文标题:js转换Date日期格式

          本文链接:https://www.haomeiwen.com/subject/ruzsortx.html