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了
<span>发表时间:{{ newsinfo.add_time | dateformat('YYYY-MM-DD HH:mm:ss')}</span>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,130评论 2 89
  • 醉,清风徐来,夏雨归,将晚,温酒而歌。 晨,凉意渐浓,秋风至,晨曦,慵懒而伸。
    醉竹轩阅读 1,592评论 0 0
  • 只是突然间的打开了。 早上好! 又是混沌的一天,算着日子发现原来二月只有二十八天。跑着,跳着,叫着去...
    青鸟先生阅读 2,865评论 0 0
  • 在OC中,我们对方法的调用都会被转换成内部的消息发送执行对objc_msgSend方法的调用,掌握好消息发送,可以...
    啊啊啊啊锋阅读 9,895评论 5 12
  • 1早起 2练字 3运动,不达标哈 晚安
    连名带姓阅读 1,131评论 0 0