Date 对象常用API

Date 对象常用API

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获取当前时间戳的方法:

Date.parse(new Date()); // 不推荐; 毫秒改成了000显示  
new Date().valueOf();
new Date().getTime();
+new Date().getTime();

js中单独调用 new Date(); 显示这种格式Fri Aug 28 2020 11:03:24 GMT+0800 (中国标准时间)
但是用 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)  // 按给定的参数创建一日期对象   

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;  
            };  

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 转换成标准时间()?

// 调用:parserDate("2015-03-19 12::00:00")
var parserDate = function (date) {  
    var t = Date.parse(date);  
    if (!isNaN(t)) {  
        return new Date(Date.parse(date.replace(/-/g, "/")));  
    } else {  
        return new Date();  
    }  
}; 

写一个vue plugin 用于格式化日期时间:

export function prefixZero (num, n) {
    return (Array(n).join(0) + num).slice(-n);
} 

/**
 * @param {String | Number} date 当前时间
 * @param {String} format 格式化格式
 *
 * usage:
 *	dateFormatter('2011/1/12 12:12:22', 'yyyy-MM-dd HH:mm:ss')
 * 	dateFormatter(1294805542000, 'yyyy-MM-dd HH:mm:ss')
 */
export function dateFormatter (date, format) {
  const t = new Date(date)
  console.log(t)
  if (t.toString() === 'Invalid Date') { return 'invalid date' }
  return format.replace(/yyyy|MM|M|WW|W|ww|w|dd|d|HH|H|hh|h|mm|m|ss|s|A|a/g, function(a){  
    switch(a){  
      case 'yyyy': // 年 2011
        return prefixZero(t.getFullYear(), 4);
      case 'MM': 	// 月 01
        return prefixZero(t.getMonth() + 1, 2);
      case 'M': 	// 月 1
        return t.getMonth() + 1;
      case 'WW': 	// 周 01
        return prefixZero(t.getDay(), 2);
      case 'W': 	// 周 1
        return t.getDay();
      case 'ww': 	// 周 星期一
        return "星期" + "日一二三四五六".charAt(t.getDay());
      case 'w': 	// 周 周一
        return "周" + "日一二三四五六".charAt(t.getDay());
      case 'dd': 	// 日 02
        return prefixZero(t.getDate(), 2);
      case 'd': 	// 日 2
        return prefixZero(t.getDate(), 2);
      case 'HH':  // 小时 24小时制 03
        return prefixZero(t.getHours(), 2);
      case 'H':  	// 小时 24小时制 3
        return prefixZero(t.getHours(), 2);
      case 'hh':  // 小时 12小时制 03
        return prefixZero(t.getHours() % 12, 2);
      case 'h':  	// 小时 12小时制 3
        return prefixZero(t.getHours() % 12, 2);
      case 'mm':  // 分钟 04
        return prefixZero(t.getMinutes(), 2);
      case 'm':  	// 分钟 4
        return t.getMinutes();
      case 'ss':  // 秒 05
        return prefixZero(t.getSeconds(), 2);
      case 's':  	// 秒 5
        return t.getSeconds();
      case 'A':  
        return t.getHours() < 12 ? 'AM' : 'PM';
      case 'a':  
        return t.getHours() < 12 ? 'am' : 'pm'; 
    }  
  })  
}

const dateFormat = {
  install: function (vue) {
    vue.prototype.$dateFormatter = dateFormatter
    vue.filter('date', dateFormatter)
  }
}
export default dateFormat
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值