zoukankan      html  css  js  c++  java
  • JS将时间与时间戳互转

    时间转为时间戳

    1
    var changeTimes = function(time) { 2 var temp = time.split(' '); 3 var arr = temp[0].split('-'); 4 var brr = temp[1].split(':'); 5 if(brr.length == 3){ 6 var timestamp = new Date(Date.UTC(arr[0], arr[1] - 1, arr[2], +brr[0] - 8, brr[1], brr[2])); 7 }else if(brr.length == 2){ 8 var timestamp = new Date(Date.UTC(arr[0], arr[1] - 1, arr[2], +brr[0] - 8, brr[1])); 9 } 10 var timestamp = timestamp.getTime() / 1000; 11 return timestamp; 12 };

    时间戳转为时间

    通过js将时间戳转换成"yyyy--mm--dd"格式
    
    function fmtDate(timestamp){
        return formatDate(timestamp)
    }
    function formatDate(timestamp){
      var date = new Date(timestamp)
      var o = {       
            "y" : date.getFullYear(),         
            "M" : date.getMonth()+1,      
            "d" : date.getDate(),
            "h" : date.getHours(),
            "m" : date.getMinutes(),
            "s" : date.getSeconds(),
        }
        o.M = (o.M<10)?('0'+o.M):o.M;
        o.d = (o.d<10)?('0'+o.d):o.d;
        o.h = (o.h<10)?('0'+o.h):o.h;
        o.m = (o.m<10)?('0'+o.m):o.m;
        o.s = (o.s<10)?('0'+o.s):o.s;    
        return `${o.y}-${o.M}-${o.d} ${o.h}:${o.m}:${o.s}`
    }

    时间格式化

    1

    function formatDate(val) { 
        var o = {       
            "y" : val.getFullYear(),         
            "M" : val.getMonth()+1,      
            "d" : val.getDate(),
            "h" : val.getHours(),
            "m" : val.getMinutes(),
            "s" : val.getSeconds(),
        }
        o.M = (o.M<10)?('0'+o.M):o.M;
        o.d = (o.d<10)?('0'+o.d):o.d;
        o.h = (o.h<10)?('0'+o.h):o.h;
        o.m = (o.m<10)?('0'+o.m):o.m;
        o.s = (o.s<10)?('0'+o.s):o.s;    
        return `${o.y}-${o.M}-${o.d} ${o.h}:${o.m}:${o.s}`
      }

    2

    Date.prototype.format = function(format) {
           var date = {
                  "M+": this.getMonth() + 1,
                  "d+": this.getDate(),
                  "h+": this.getHours(),
                  "m+": this.getMinutes(),
                  "s+": this.getSeconds(),
                  "q+": Math.floor((this.getMonth() + 3) / 3),
                  "S+": this.getMilliseconds()
           };
           if (/(y+)/i.test(format)) {
                  format = format.replace(RegExp.$1, (this.getFullYear() + '').substr(4 - RegExp.$1.length));
           }
           for (var k in date) {
                  if (new RegExp("(" + k + ")").test(format)) {
                         format = format.replace(RegExp.$1, RegExp.$1.length == 1
                                ? date[k] : ("00" + date[k]).substr(("" + date[k]).length));
                  }
           }
           return format;
    }
    console.log(newDate.format('yyyy-MM-dd h:m:s'));

    Date.UTC 函数 (JavaScript)

    返回协调通用时间 (UTC)(或 GMT)1970 年 1 月 1 日午夜与所指定的日期之间相差的毫秒数。

    语法:

    Date.UTC(year, month, day[, hours[, minutes[, seconds[,ms]]]]) 

    Date.UTC 函数返回从 UTC 1970 年 1 月 1 日午夜到所提供日期之间的毫秒数。  此返回值可用在 setTime 方法和 Date 对象构造函数中。  如果参数值大于其范围或为负数,则其他存储的值都将得到相应的修改。  例如,如果指定 150 秒,则 JavaScript 将该数字重新定义为 2 分 30 秒。  

    Date.UTC 函数和接受日期的 Date 对象构造函数之间的差别在于:Date.UTC 函数采用 UTC,而 Date 对象构造函数采用当地时间。

     一、计算当前时间后一个月的日期

    function getMonthAfter(){
       let timestamp = Date.parse(new Date()) + 30*24*3600*1000;
       let newDate = new Date(timestamp);
       return newDate.format('yyyy-MM-dd'); //用到二里的format方法
    }

    二、将时间戳转为日期

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <script type="text/javascript">
    // 获取当前时间戳(以s为单位)
    var timestamp = Date.parse(new Date());
    timestamp = timestamp / 1000;
    //当前时间戳为:1403149534
    console.log("当前时间戳为:" + timestamp);
    

    // 获取某个时间格式的时间戳 var stringTime = "2014-07-10 10:21:12"; var timestamp2 = Date.parse(new Date(stringTime)); timestamp2 = timestamp2 / 1000; //2014-07-10 10:21:12的时间戳为:1404958872 console.log(stringTime + "的时间戳为:" + timestamp2); // 将当前时间换成时间格式字符串 var timestamp3 = 1403058804; var newDate = new Date(); newDate.setTime(timestamp3 * 1000); // Wed Jun 18 2014 console.log(newDate.toDateString()); // Wed, 18 Jun 2014 02:33:24 GMT console.log(newDate.toGMTString()); // 2014-06-18T02:33:24.000Z console.log(newDate.toISOString()); // 2014-06-18T02:33:24.000Z console.log(newDate.toJSON()); // 2014年6月18日 console.log(newDate.toLocaleDateString()); // 2014年6月18日 上午10:33:24 console.log(newDate.toLocaleString()); // 上午10:33:24 console.log(newDate.toLocaleTimeString()); // Wed Jun 18 2014 10:33:24 GMT+0800 (中国标准时间) console.log(newDate.toString()); // 10:33:24 GMT+0800 (中国标准时间) console.log(newDate.toTimeString()); // Wed, 18 Jun 2014 02:33:24 GMT console.log(newDate.toUTCString()); </script>

      

  • 相关阅读:
    AC日记——可能的路径 51nod 1247
    AC日记——[国家集训队2011]旅游(宋方睿) cogs 1867
    近期将要学习的内容(flag)
    Cogs 734. [网络流24题] 方格取数问题(最大闭合子图)
    Cogs 746. [网络流24题] 骑士共存(最大独立集)
    Cogs 729. [网络流24题] 圆桌聚餐
    [网络流24题]飞行员配对方案问题
    Hdu 3549 Flow Problem(最大流)
    Cogs 14. [网络流24题] 搭配飞行员(二分图匹配)
    Cogs 728. [网络流24题] 最小路径覆盖问题
  • 原文地址:https://www.cnblogs.com/jessiespur/p/6824118.html
Copyright © 2011-2022 走看看