3、关于Date的总结

一、获取时间

let now = new Date()
let d = new Date(0) // 时间原点

二、精确计算

1、服务器要时间戳
答:咱们一般直接给你毫秒数
System.currentTimeMillis()
2、服务器要时间戳,说我要精确到秒数
System.currentTimeMillis() / 1000
3、服务要时间戳,又说要精确到分钟数
System.currentTimeMillis() / 1000 / 60
4、服务器要时间戳,又说要精确到小时数
System.currentTimeMillis() / 1000 / (60 * 60)
5、服务器要时间戳,又说要精确到天数
System.currentTimeMillis() / 1000 / (60 * 60 * 24)

一个需要当前月份的实例

      getMonthOption () {
        let d = new Date(0)
        let now = new Date()
        let year = now.getFullYear()
        let month = now.getMonth()
        d.setMonth(month)
        d.setFullYear(year)
        this.query.renewalDate = d.getTime()
        this.monthOption.length = 0
        for (let i = 0; i < 13; i++) {
          let text = year + '年' + month + '月'
          this.monthOption.push({ label: text, value: d.getTime() })
          if (month === 12) {
            year++
            month = 1
          } else {
            month++
          }
          d.setMonth(month)
          d.setFullYear(year)
        }
      },

无time的date数据变成23:59:59
加上 246060*1000-1000
三、用法
1、时间和时间戳的转换

//1、时间戳转换为时间
function timetrans(date){
    var date = new Date(date*1000);//如果date为13位不需要乘1000
    var Y = date.getFullYear() + '-';
    var M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + '-';
    var D = (date.getDate() < 10 ? '0' + (date.getDate()) : date.getDate()) + ' ';
    var h = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':';
    var m = (date.getMinutes() <10 ? '0' + date.getMinutes() : date.getMinutes()) + ':';
    var s = (date.getSeconds() <10 ? '0' + date.getSeconds() : date.getSeconds());
    return Y+M+D+h+m+s;
}
//2、获取当前时间戳
var timestamp1 = Date.parse( new Date());//结果:1470220594000
var timestamp2 = ( new Date()).valueOf();
var timestamp3 = new Date().getTime();
new Date("2016-08-03 00:00:00");//获取指定时间时间戳

2、moment.js使用

1 首先在vue项目中
npm install moment --save

2 定义时间格式化全局过滤器
在main.js中 导入组件
import moment from 'moment'
Vue.filter('dateformat', function(dataStr, pattern = 'YYYY-MM-DD HH:mm:ss') {
    return moment(dataStr).format(pattern)
})
filter两个参数 第一个是函数名  第二个是时间格式化处理的函数

3 只需要在需要格式化时间的地方使用插值表达式就OK了
发表时间:{{ newsinfo.add_time | dateformat('YYYY-MM-DD HH:mm:ss')}

你可能感兴趣的:(3、关于Date的总结)