前言
一个网站的开发需要要UI、前端、后端三种工程师。现在的企业在招聘前端工程师的时候一般都要求其了解或者掌握一些后端的知识。因此,此文章主要介绍javascript的日期类型,也粗略的介绍一下php的日期类型,以及二者是如何交互数据的。
时间戳
- 什么是时间戳
时间戳是从格林威治时间1970年1月1日(00:00:00 GMT)至今的总秒数。它也被称为Unix时间戳。多数系统将时间戳以一个32位的整数来存储。 - 为什么要使用时间戳
便于系统对不同格式的时间进行存储 - 常见的时间戳有时候是10位的有时候是13位的到底有什么区别
我所说的这个10位和13位当然表示的是同一个时间了,不同的时间位数不同很正常哦!1970年至今的时间一般是10位或者13位。在不同的语言中表示时间戳的单位是不一样的,在JavaScript中表示时间戳的单位为毫秒(ms)、在PHP中表示时间戳的单位是秒(s)。s和ms的转换刚好是10的三次方,javascript中的时间戳(现在)一般用13位表示,PHP中的时间戳(现在)一般用10位表示。因此记得PHP的时间戳传递到JavaScript中使用的使用记得要*1000。 - 注意
客户端与服务器日期进行传输的时候一般都是用大整数(时间戳)进行传输。倒计时或什么的各种时间都是以服务器为准,不能以客户端的时间为准。[因为不然客户端随意对自己的时间进行修改、这样子就会导致活动提前什么的喽]
!客户端的时区设置可能会导致时间结果的不同!
javascript中的日期类型
- Date对象简介
Date对象用于对日期和时间进行存储和计算
- 创建Date对象
//使用指定的年月日[时分秒]进行初始化
new Date(2017,8,17); //年月日
new Date(2017,8,17,19,20,20); //年月日时分秒
//注意:月份是从0~11,因此想设置为9月,参数应该写8
new Date('2017/9/17'); //把String转换为Date
//初始化为系统时间
new Date();
new Date;
Date();
//初始化为距离计算机元年指定毫秒数的时间
new Date(0);
new Date(3600*24) //距离计算机元年 3600*24s 一个小时3600s 一天24小时 3600*24刚好是一天
- 日期对象的API
单位:
FullYear 年 Month 月 Date 日 Day 星期 //年月日星期 无s结尾
Hours 小时 Minutes 分钟 Seconds 秒 MilliSeconds 毫秒 //小时分钟秒毫秒 有s结尾
API:
setFullYear()、getFullYear()、setMonth()、getMonth()、setDate()、getDate()、getDay()
setHours()、getHours()、setMinutes()、getMinutes()、setSeconds()、getSeconds()、setMilliSeconds()、getMilliSeconds()
注意:Day星期只有get方法没有set方法 因为年月日确定了之后星期已经确定了
- 格式化API
toString() //当地标准时间的完整格式
toLocaleString() //当地时间简化版格式
toLocaleDateString() //当地时间简化版格式日期部分
toLocaleTimeString() //当地时间简化版格式时间部分
toGMTString() //国际标准时间(0时区)
- 应用场景
1、倒计时...商城中的订单已经下单多少天
//思路:两任意日期可以相加减
结束时间-开始时间=相差毫秒数
2、某职员工作三个月已知其入职时间计算其离职的时间
//思路:复制一个和入职时间相同的日期对象 对其进行修改
实现方法:
//已知入职时间为date1
var date2 = new Date(date1); //date2为离职时间
date2.setMonth(date2.getMonth()+3) //得到其入职的月份对其+3 把+3后的月份设置为离职的月份 修改date2完成
- 以上内容的思维导图
JavaScript日期类型与PHP日期类型的梳理
由于对PHP的日期类型也只是略知一二而且时间问题在这里就没有详讲了
结语
以上的JavaScript日期类型和PHP日期类型都是本人在学习中遇到的一些问题和一些总结,如果大家觉得有哪里说得不好的或者有问题的欢迎指出哈!一起交流学习进步!这次我第一次在网上写文章,欢迎多多指教喔,希望能和大家一起进步,谢谢!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。