一、时间戳

简单讲,unix时间戳就是从1970-01-01开始所经过的秒数,什么时候获取时间戳,就是到那个时间点所经历的秒数。

二、JavaScript获取时间戳

根据时间戳的定义,可以使用javascript中的几个方法来获取系统当前的时间戳:

1、getTime()

w3c school的解释如下:

根据上面的定义,我们可以获取系统当前的时间戳:

var timeStamp1 = new Date().getTime();
console.info(timeStamp1);
//输出:1556526945555

2、parse()

根据上面的解释,parse方法返回的是指定日期和时间到1970年1月1日的毫秒数,所以只要将日期指定为系统当前时间,就能获取系统当前的时间戳。

//例子1:
var timeStamp2 = Date.parse(new Date());
console.log(timeStamp2);
//输出:1556526945000

3、valueOf()

  

该方法返回的是Date对象的原始值,且和getTime返回相同的值,所以只要Date对象为系统当前时间,就能获取系统当前的时间戳

var timeStamp5 = (new Date()).valueOf();
console.info(timeStamp5);
//输出:1556527752836

以上是获取系统当前时间的时间戳,如果要获取指定时间的时间戳,只需要设置指定日期,然后用对应的日期对象进行操作即可,不再赘述。

从上面的结论可以看出,通过parse方法获取的时间戳后三位都是0,如果用更多的数据测试,都会发现该方法返回的时间戳没有其他两种方法精确,

因为其后三位始终是0.

<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>时间戳问题</title>
<script>
/***********************************************获取当前时间***********************************************/
// 例子1:
var timeStamp1 = (new Date()).getTime();
console.log(timeStamp1);
// 输出1556529963911 // 例子8
var timeStamp8 = (new Date()).valueOf();
console.log(timeStamp8);
//输出:1556529963914 //例子9
var timeStamp9 = +new Date();
console.log(timeStamp9);
//输出:1556529963914 //例子10
var timeStamp10 = Date.now();
console.log(timeStamp10);
//输出:1556529963914 //
console.log((new Date()).getTime() == +new Date());// 输出:true console.log((new Date()).getTime() == Date.now());// 输出:true console.log((new Date()).getTime() == (new Date()).valueOf());// 输出:true console.log((new Date()).getTime() == Date.parse(new Date()));// 输出:false /***********************************************Date.parse 获取自定义时间************************************************/
// 例子2:
var timeStamp2 = Date.parse(new Date());
console.log(timeStamp2);
// 输出:1556528914000 // 例子3:
var timeStamp3 = Date.parse('2019-4-29 00:00:00');
console.log(timeStamp3);
// 输出:1556467200000 // 例子4
var timeStamp4 = Date.parse('2019-4-29');
console.log(timeStamp3);
// 输出:1556467200000 // 例子5
var timeStamp5 = Date.parse('2019.4.29');
console.log(timeStamp5);
// 输出:1556467200000 // 例子6
var timeStamp6 = Date.parse('2019/4/29');
console.log(timeStamp6);
// 输出:1556467200000 // 例子7
var timeStamp7 = (new Date('2019.4.29')).valueOf();
console.log(timeStamp7);
//输出:1556467200000 </script>
</head>
<body> </body>
</html>

二、将时间戳转换为其他

1.根据已知时间戳计算是周几

function getWeekFn(value) {
if (!value) return '';
var newDate = new Date();
newDate.setTime(parseInt(value));
var temp = new Array("日", "一", "二", "三", "四", "五", "六");
var week = new Date(newDate.toISOString()).getDay();
return temp[week];
};
console.log(getWeekFn(Date.parse('2019.4.8')));
console.log(getWeekFn(‘1554652800000’);
执行结果:“一”
 
2.根据给定日期计算周几
function getWeekFn(value) {
if (!value) return '';
var newDate = new Date(value);
var temp = new Array("日", "一", "二", "三", "四", "五", "六");
var week = newDate.getDay();
return temp[week];
};

例如:

       console.log(getWeekFn2('2019/4/8'))
  console.log(getWeekFn2('2019-4-8'))
  console.log(getWeekFn2('2019.4.8'))
执行结果: “一”

注意:该字符串应该能被 Date.parse() 正确方法识别

相关资料:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Date

作者:smile.轉角

QQ:493177502

【js】项目中有关时间的问题的更多相关文章

  1. 如何Vue-cli开始使用在Vue.js项目中启动TDD(测试驱动开发)

    通常,使用测试驱动开发(TDD)最困难的部分是开始.你必须下载带有奇怪依赖项的软件包,让测试套件与你的构建系统协同工作,然后你必须弄清楚如何编写一个测试!难怪这么多的开发者在你提起它的时候就开始跑开了 ...

  2. Vue.js + Nuxt.js 项目中使用 Vee-validate 表单校验

    vee-validate 是为 Vue.js 量身打造的表单校验框架,允许您校验输入的内容并显示对应的错误提示信息.它内置了很多常见的校验规则,可以组合使用多种校验规则,大部分场景只需要配置就能实现开 ...

  3. Vue.js项目中使用iconfont冲突问题解决

    在开发前端项目中,字体图标变得越来越常用.一方面因为它比图片使用起来方便,可以像字体一样修改大小和颜色:另一方面是因为它可以减少请求数量,优化前端性能. iconfont的使用方法很简单,主要由三种引 ...

  4. sau交流学习社区--songEagle开发系列:Vue.js + Koa.js项目中使用JWT认证

    一.前言 JWT(JSON Web Token),是为了在网络环境间传递声明而执行的一种基于JSON的开放标准(RFC 7519). JWT不是一个新鲜的东西,网上相关的介绍已经非常多了.不是很了解的 ...

  5. 17、vue-cli3 js项目中引入ts混用(typeScript)

    说明: vue3.0搭建的项目,不过没有引入ts,后来需要用到一个插件是用ts写的,所以vue要用到ts... 一.安装typescript及loader npm install typescript ...

  6. 个人博客开发系列:Vue.js + Koa.js项目中使用JWT认证

    前言 JWT(JSON Web Token),是为了在网络环境间传递声明而执行的一种基于JSON的开放标准(RFC 7519). 更多的介绍和说明,以及各种原理,我在此就不多赘诉了.JWT不是一个新鲜 ...

  7. Vue.js项目中,当图片无法显示时则显示默认图片

    使用require将图片进入,写法如下: data: () => ({logo: 'this.src="' + require('../assets/img.png') + '&quo ...

  8. Node.js 项目中解决 SQL 注入和 XSS 攻击

    1.SQL 注入 SQL 注入,一般是通过把 SQL 命令插入到 Web 表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的 SQL 命令. SQL 注入示例 在登录界面,后端会根 ...

  9. js json中的时间转换格式

    //根据json中的日期格式,转换成yyyy-mm-dd HH:mm:ss function ChangeDateFormat(cellval) { var date = new Date(parse ...

随机推荐

  1. React Native在特赞的应用与实践

    基于React技术栈构建开发前端项目,并使用React Native开发特赞移动APP 目前正在使用Node.js开发和维护特赞服务网关,希望Node.js能够在更轻量级的微服务架构中发挥重要作用 课 ...

  2. CAPTCHA---验证码 ---Security code

    BotDetect Java CAPTCHA Generator 3. Add BotDetect Java CAPTCHA Library Dependency Here is how to add ...

  3. 使用Map标签指定点击区域时的兼容性问题

    电商m站的首页,有一个需求是配一张大的banner图,然后指定某些区域是热区,点击之后跳转到不同的活动页. 听起来简单明了,实现也比较容易,立刻就想起来有个map标签,简直就是为这个需求量身定做. 简 ...

  4. 数据库历险记(一) | MySQL这么好,为什么还有人用Oracle?

    关系型数据库(Relational DataBase Management System),简称 RDBMS.说起关系型数据库,我们脑海中会立即浮现出 Oracle.MySQL.SQLServer 等 ...

  5. JavaScript单线程和异步机制

    随着对JavaScript学习的深入和实践经验的积累,一些原理和底层的东西也开始逐渐了解.早先也看过一些关于js单线程和事件循环的文章,不过当时看的似懂非懂,只留了一个大概的印象:浏览器中的js程序时 ...

  6. centos环境的python、scrapy部署

    1 操作系统 Centos 6.5 64bit 或以上版本 2 软件环境 提示:(1)用什么软件:(2)运行环境(3)开发包. Python:Python-2.7.6.tgz Scrapy:Scrap ...

  7. Python 员工信息管理系统

    学Python将近一个月了,第一次写了两百多行代码,一个很简单的脚本. 员工信息管理系统: 需求: 1.管理员账户能够增加,删除,修改,查询员工信息,并且设置管理员账户. 2.普通账户可以查看所有员工 ...

  8. in_flight_pqueue.go

    // right child         }         if (*pq)[j].pri >= (*pq)[i].pri {             break         }    ...

  9. 【BZOJ 4031】: [HEOI2015]小Z的房间

    题目大意: 给一个n×m的网格,“.”表示可联通,求该网格可构成的生成树个数在1E9的剩余系中的结果.(n,m<=9) 题解: 忘了删注释WA了两遍…… 直接建图+MartrixTree定理即可 ...

  10. Rmq Problem/mex BZOJ3339 BZOJ3585

    分析: 一开始没看懂题... 后来想用二分答案却不会验证... 之后,想到用主席树来维护... 建一个权值线段树,维护出这个权值以前所有的点最晚在哪里出现... 之后,查一下是不是比查询区间的l断点大 ...