一、获取时间
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>