1、自定义方法转换
- 把时间戳 转为 年-月-日 时:分:秒 格式
// 小于10前面补0
function add0 (m) {
return m < 10 ? '0' + m : m
}
function dateTime (ts) {
var time = new Date(ts)
var year = time.getFullYear()
var month = time.getMonth()+1
var day = time.getDate()
var hour = time.getHours()
var minute = time.getMinutes()
var second = time.getSeconds()
return year + '-' + add0(month) + '-' + add0(day) + ' ' + add0(hour) + ':' + add0(minute) + ':' + add0(second)
}
console.log(dateTime(1586254138000));
打印结果如下
function formatDate (value) {
if (value) {
let date = new Date(parseInt(value))
let y = date.getFullYear()
let MM = date.getMonth() + 1
MM = MM < 10 ? ('0' + MM) : MM
let d = date.getDate()
d = d < 10 ? ('0' + d) : d
let h = date.getHours()
h = h < 10 ? ('0' + h) : h
let m = date.getMinutes()
m = m < 10 ? ('0' + m) : m
let s = date.getSeconds()
s = s < 10 ? ('0' + s) : s
return y + '-' + MM + '-' + d + ' ' + h + ':' + m + ':' + s
} else {
return ''
}
}
console.log(formatDate(1586254138000));
打印结果如下
把年月日,时分秒 转换成 时间戳
function formatDate(value) {
if (value) {
var date = new Date(value);
// 有三种方式获取
var time1 = date.getTime();
var time2 = date.valueOf();
var time3 = Date.parse(date);
}
console.log(time1);
console.log(time2);
console.log(time3);
}
formatDate('2020-04-07 18:08:58')
打印如下
2、使用ES6的padStart()方法来补0
function dateTime (ts) {
let time = new Date(ts)
let year = time.getFullYear()
const month = (time.getMonth() + 1).toString().padStart(2, '0')
const day = (time.getDate()).toString().padStart(2, '0')
const hour = (time.getHours()).toString().padStart(2, '0')
const minute = (time.getMinutes()).toString().padStart(2, '0')
const second = (time.getSeconds()).toString().padStart(2, '0')
return year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + second
}
console.log(dateTime(1586254138000));
打印结果如下
3、使用JavaScript 日期处理类库转换(Moment.js)
- JavaScript 日期处理类库地址 :http://momentjs.cn/
- 需要先npm / yarn 安装:npm install moment或者yarn add moment
import Moment from 'moment'
// 时间戳(毫秒)转化为标准时间格式
export function dateTime (ts) {
const stamp = new Date(ts)
const time = Moment(stamp).format('YYYY-MM-DD HH:mm:ss')
return time
}
console.log(dateTime(1586254138000));
打印结果如下
js封装获取指定日期的前一天/后一天函数
// date 代表指定的日期,格式:2018-09-27
// day 传-1表始前一天,传1表始后一天
// JS获取指定日期的前一天,后一天
function getNextDate(date, day) {
let time = new Date(date);
time.setDate(time.getDate() + day);
let y = time.getFullYear();
let m = time.getMonth() + 1 < 10 ? "0" + (time.getMonth() + 1) : time.getMonth() + 1;
let d = time.getDate() < 10 ? "0" + time.getDate() : time.getDate();
return y + "-" + m + "-" + d;
};
getNextDate("2021-05-07",-1);
运行结果: 2021-05-06
打印结果如下
js日期时间比较
1. js日期比较( 要求日期格式:yyyy-mm-dd)
//js日期比较( 要求日期格式:yyyy-mm-dd)
function DateBiJiao(firstDate, lastDate) {
let arr = firstDate.split("-");
let firstTime = new Date(arr[0], arr[1], arr[2]);
let firstTimes = firstTime.getTime();
let arrs = lastDate.split("-");
let lastTime = new Date(arrs[0], arrs[1], arrs[2]);
let lastTimes = lastTime.getTime();
if (firstTimes >= lastTimes) {
console.log('11');
} else {
console.log('22');
}
}
DateBiJiao('2023-04-05', '2021-09-05')
打印结果如下
2. js时间比较( 要求日期格式:yyyy-mm-dd hh:mi:ss)
//js时间比较( 要求日期格式:yyyy-mm-dd hh:mi:ss)
function DateBiJiao(firstDate,lastDate) {
let beginTime = firstDate;
let endTime = lastDate;
let beginTimes = beginTime.substring(0, 10).split('-');
let endTimes = endTime.substring(0, 10).split('-');
beginTime = beginTimes[1] + '-' + beginTimes[2] + '-' + beginTimes[0] + ' ' + beginTime.substring(10, 19);
endTime = endTimes[1] + '-' + endTimes[2] + '-' + endTimes[0] + ' ' + endTime.substring(10, 19);
let a = (Date.parse(endTime) - Date.parse(beginTime)) / 3600 / 1000;
if (a < 0) {
console.log('前一天 大!');
} else if (a > 0) {
console.log('前一天 小!');
} else if (a == 0) {
console.log('两天相等!');
} else {
return 'exception'
}
}
DateBiJiao('2023-04-05 18:12:33', '2021-09-05 22:23:43')
打印结果如下