一、时间戳

简单讲,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. VirtualBox报错:不能为虚拟电脑XXX打开一个新任务

    报错产生的背景 今天在这里下载了一个用于VirtualBox的Kali Linux虚拟机文件(使用VirtualBox可以直接打开使用,不用执行安装过程).但是将该文件导入到VirtualBox中之后 ...

  2. 一种转换Ipv6地址的方法

    原CSDN博客不再更新维护. 本文介绍了一种将char* 类型的Ipv6地址转换成BYTE(unsigned char)或者in6_addr类型的方法. 说明:使用时需要下载Ipv6++.lib和Ip ...

  3. Securing Spring Cloud Microservices With OAuth2

    From Zero to OAuth2 in Spring cloud Today I am presenting hours of research about a (apparently) sim ...

  4. 关于 行高lineheight的概念及与Vertical-align、内容框、基线等的关系

    1.关于行高 行高:顾名思意指一行文字的高度.具体来说是指两行文字间基线之间的距离,他也是底线和顶线之间距离   (1)内容区

  5. public_handers.go

    package],,) ],,) ]:],,);:],],,) ) ]],,) )) ,) ))         if etagMatch {             w.WriteHeader(ht ...

  6. nsq源码阅读笔记之nsqd(二)——Topic

    与Topic相关的代码主要位于nsqd/nsqd.go, nsqd/topic.go中. Topic的获取 Topic通过GetTopic函数获取 GetTopic函数用于获取topic对象,首先先尝 ...

  7. ajax封装函数和表单序列化

    //表单序列化function iSerialize(form){ var parts={}; for(var i=0;i<form.elements.length;i++){ var file ...

  8. Heartbeat实现集群高可用热备

    公司最近需要针对服务器实现热可用热备,这几天也一直在琢磨这个方面的东西,今天做了一些Heartbeat方面的工作,在此记录下来,给需要的人以参考. Heartbeat 项目是 Linux-HA 工程的 ...

  9. common-pool2连接池详解与使用

    我们在服务器开发的过程中,往往会有一些对象,它的创建和初始化需要的时间比较长,比如数据库连接,网络IO,大数据对象等.在大量使用这些对象时,如果不采用一些技术优化,就会造成一些不可忽略的性能影响.一种 ...

  10. 深度学习与自动驾驶领域的数据集(KITTI,Oxford,Cityscape,Comma.ai,BDDV,TORCS,Udacity,GTA,CARLA,Carcraft)

    http://blog.csdn.net/solomon1558/article/details/70173223 Torontocity HCI middlebury caltech 行人检测数据集 ...