前言
做项目其实经常需要与时间接触。时间戳与时间的转换问题,在这做一个记录。
1.获取特定格式的时间
myDate.getYear(); //获取当前年份(2位)
myDate.getFullYear(); //获取完整的年份(4位,1970-????)
myDate.getMonth(); //获取当前月份(0-11,0代表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( ); //获取日期与时间
2.获取当前时间的时间戳(13位)
//第一种方法(精确到秒)
var timestamp = Date.parse(new Date());
//第二种方法(精确到毫秒)
var timestamp = (new Date()).valueOf();
//第三种方法(精确到毫秒)
var timestamp=new Date().getTime();
3.时间戳转指定日期格式
//第一种
function getLocalTime(nS) {
return new Date(parseInt(nS)).toLocaleString().replace(/:\d{1,2}$/, ' ');
}
var nowTime = getLocalTime(timestamp); // 2018/10/15 下午9:45
//第二种
function getLocalTime1(nS) {
return new Date(parseInt(nS)).toLocaleString().substr(0, 17)
}
var nowTime = getLocalTime1(timestamp); // 2018/10/15 下午9:53
//第三种
function getLocalTime2(nS) {
return new Date(parseInt(nS)).toLocaleString().replace(/年|月/g, "-").replace(/日/g, " ");
}
let nowTime1 = getLocalTime2(timestamp); // 2018/10/15 下午9:53:10
还有一种较为繁琐的
function getFormatData(getData) {
let date = new Date(parseInt(getData));
const year = date.getFullYear()
const month = date.getMonth() + 1
const day = date.getDate()
const hour = date.getHours()
const minute = date.getMinutes()
const second = date.getSeconds()
return [year, month, day].map(formatNumber).join('-') + ' ' + [hour, minute, second].map(formatNumber).join(':')
}
const formatNumber = n => {
n = n.toString()
return n[1] ? n : '0' + n
}
let DateTime = getFormatData(timestamp); //2018-10-17 15:31:30
4.获取今天0点的时间戳
toLocaleDateString() 方法可根据本地时间把 Date 对象的日期部分转换为字符串,并返回结果。(就是返回“2018/10/17”这样的字符串)
let getZeroTimestamp = new Date(new Date().toLocaleDateString()).getTime();
//注:toLocaleDateString得到的日期字符串最好别用来做时间格式的处理(就是别直接拿这个字符串做一些替换之类的操作),因为我在别人的文章看到,在不同浏览器或者不同版本下。返回的样式不一样,可能会有“2018-10-17”这种格式。我自己试了最新版的Google,Firefox,Safari返回的是一样的“2018/10/17”。
暂时就想起来那么多,以后用到新的会继续增加的。最后,附上,w3c上Date()对象的链接
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。