时间戳与时间的故事

一、时间戳的意思

 首先很多朋友或许不明白时间戳的意思,我介绍下哈

时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。

了解了他的根源咱就可以继续玩下去了

二、时间转换成时间

1.js获取当前时间戳的方法

var timestamp1 = Date.parse(new Date());//不推荐这种办法,毫秒级别的数值被转化为000
var timestamp2 = (new Date()).valueOf();//获取了当前毫秒的时间戳,准确。
var timestamp3 = new Date().getTime();//getTime()返回数值的单位是毫秒

2.js获取指定时间戳的方法

var timestamp4= (new Date("2018/06/22 08:00:20")).getTime()/1000;

 

三、时间戳转换成时间

var timestamp=new Date(1472048779952) //直接用New Date(要转换的时间戳)来获取时间戳所代表的的日期

其中注意时间戳一定要是Int型,否则转换会失败。ParseInt()一下最好。

 

四、格式化日期

开发中长用到日期,但你new Date()或得到的无法直接用来显示给用户,所以一般我们会写一个格式化日期的方法

如下:

function dateFormat(thisDate, fmt) {
    var o = {
        "M+": thisDate.getMonth() + 1,
        "d+": thisDate.getDate(),
        "h+": thisDate.getHours(),
        "m+": thisDate.getMinutes(),
        "s+": thisDate.getSeconds(),
        "q+": Math.floor((thisDate.getMonth() + 3) / 3),
        "S": thisDate.getMilliseconds()
    };
    if (/(y+)/.test(fmt))
        fmt = fmt.replace(RegExp.$1, (thisDate.getFullYear() + "").substr(4 - RegExp.$1.length));
    for (var k in o)
        if (new RegExp("(" + k + ")").test(fmt))
            fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
    return fmt;
}
var Date=new Date();
console.log(dateFormat(Date, "yyyy-MM-dd hh:mm:ss"))//调用

 

五、根据日期来计算星期


1.计算当前日期的星期一与星期天

 var Date=new Date();
 var selectTime = Date.getTime();//获取时间戳
    var selectDay = Date.getDay();//获取星期
    var oneDayLong = 24 * 3600 * 1000;//定义一天有多少毫秒
    var MondayTime = selectTime - (selectDay - 1) * oneDayLong;
  var monday = new Date(MondayTime)//时间戳再转回时间
  var SundayTime = selectTime - (selectDay - 7) * oneDayLong;
  var sundayTime = new Date(SundayTime)

console.log(monday)
console.log(sundayTime)

六、计算某一日期是星期几

当我们知道某一'yyyy-mm-dd'日期时便可以计算出当前是星期几,公式如下:

基姆拉尔森计算公式
W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7
在公式中d表示日期中的日数,m表示月份数,y表示年数。(其中mod意思是取余计算,js用的是%)
发布了25 篇原创文章 · 获赞 10 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/xj932956499/article/details/80759903
今日推荐