【js】项目中有关时间的问题
一、时间戳
简单讲,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];
};
function getWeekFn(value) {
if (!value) return '';
var newDate = new Date(value);
var temp = new Array("日", "一", "二", "三", "四", "五", "六");
var week = newDate.getDay();
return temp[week];
};
例如:
注意:该字符串应该能被 Date.parse() 正确方法识别
相关资料:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Date
作者:smile.轉角
QQ:493177502
【js】项目中有关时间的问题的更多相关文章
- 如何Vue-cli开始使用在Vue.js项目中启动TDD(测试驱动开发)
通常,使用测试驱动开发(TDD)最困难的部分是开始.你必须下载带有奇怪依赖项的软件包,让测试套件与你的构建系统协同工作,然后你必须弄清楚如何编写一个测试!难怪这么多的开发者在你提起它的时候就开始跑开了 ...
- Vue.js + Nuxt.js 项目中使用 Vee-validate 表单校验
vee-validate 是为 Vue.js 量身打造的表单校验框架,允许您校验输入的内容并显示对应的错误提示信息.它内置了很多常见的校验规则,可以组合使用多种校验规则,大部分场景只需要配置就能实现开 ...
- Vue.js项目中使用iconfont冲突问题解决
在开发前端项目中,字体图标变得越来越常用.一方面因为它比图片使用起来方便,可以像字体一样修改大小和颜色:另一方面是因为它可以减少请求数量,优化前端性能. iconfont的使用方法很简单,主要由三种引 ...
- sau交流学习社区--songEagle开发系列:Vue.js + Koa.js项目中使用JWT认证
一.前言 JWT(JSON Web Token),是为了在网络环境间传递声明而执行的一种基于JSON的开放标准(RFC 7519). JWT不是一个新鲜的东西,网上相关的介绍已经非常多了.不是很了解的 ...
- 17、vue-cli3 js项目中引入ts混用(typeScript)
说明: vue3.0搭建的项目,不过没有引入ts,后来需要用到一个插件是用ts写的,所以vue要用到ts... 一.安装typescript及loader npm install typescript ...
- 个人博客开发系列:Vue.js + Koa.js项目中使用JWT认证
前言 JWT(JSON Web Token),是为了在网络环境间传递声明而执行的一种基于JSON的开放标准(RFC 7519). 更多的介绍和说明,以及各种原理,我在此就不多赘诉了.JWT不是一个新鲜 ...
- Vue.js项目中,当图片无法显示时则显示默认图片
使用require将图片进入,写法如下: data: () => ({logo: 'this.src="' + require('../assets/img.png') + '&quo ...
- Node.js 项目中解决 SQL 注入和 XSS 攻击
1.SQL 注入 SQL 注入,一般是通过把 SQL 命令插入到 Web 表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的 SQL 命令. SQL 注入示例 在登录界面,后端会根 ...
- js json中的时间转换格式
//根据json中的日期格式,转换成yyyy-mm-dd HH:mm:ss function ChangeDateFormat(cellval) { var date = new Date(parse ...
随机推荐
- capwap学习笔记——初识capwap(三)(转)
2.5.6 CAPWAP状态机详解 2.5.6.1 Start to Idle 这个状态变迁发生在设备初始化完成. ¢ WTP: 开启CAPWAP状态机. ¢ AC: 开启CAPWAP状态机. ...
- spring Cloud 域名映射 ip地址实现
spring.cloud.inetutils.preferredNetworks[0]=^192\.168 eureka.instance.prefer-ip-address=true
- HBuilder 插件开发(openinstall 集成)
离线打包 如果要集成使用非基座包下的第三方 SDK,就必须使用离线打包.可以参考 官方文档 进行离线打包,如果嫌官方文档看不懂,可以查看 其他技术人员的教程 开发插件 编写 Android 原生代码 ...
- 对JDK的深入理解
今天对Java的jdk有了更加深入的理解: Java的jdk其实一共包含三部分内容: 1.工具包 2.类库 3.JRE jdk的全名:Java develop kit (java开发工具) jdk包含 ...
- DCOS实践分享(4):如何基于DC/OS整合SMACK(Spark, Mesos, Akka, Cassandra, Kafka)
这篇文章入选CSDN极客头条 http://geek.csdn.net/news/detail/71572 当前,要保证业务的市场竞争力,仅靠设计一个可用并且好看的产品,已经完全不能满足要求.全球消费 ...
- 查找linux设备的uuid
[root@ ~]# blkid /dev/vdc /dev/vdc: UUID="bxxxx-xxx-41b9-8146-7da8bd645b92" TYPE="ext ...
- Doctype作用?标准模式与兼容模式各有什么区别?
Doctype作用?标准模式与兼容模式各有什么区别? DOCTYPE是document type(文档类型)的简写,用来告诉浏览器的解析器使用哪种HTML或XHTML规范解析页面.DOCTYPE不存在 ...
- 关于Random(47)与randon.nextInt(100)的区别
参考https://blog.csdn.net/md_shmily92/article/details/44059313 相关文章random.nextInt()与Math.random()基础用法 ...
- BZOJ_4765_普通计算姬_分块+dfs序+树状数组
BZOJ_4765_普通计算姬_分块 Description "奋战三星期,造台计算机".小G响应号召,花了三小时造了台普通计算姬.普通计算姬比普通计算机要厉害一些 .普通计算机能 ...
- VMware workstation创建虚拟机console
1. 使用VMware workstation创建虚拟机硬件2. 安装操作系统3. 操作系统安装过程 1. 使用VMware workstation创建虚拟机硬件 使用VMware workstati ...