javascript
js 获得明天0点时间戳_需要知道的JS的日期知识,都在这了
时区
我们的世界有数百个时区。在JavaScript中,我们只关心两个, 本地时间和协调世界时(UTC)。本地时间是指你的计算机所在的时区。
UTC实际上是格林威治标准时间(GMT)的同义词
创建日期
可以使用 new Date()来创建日期,传入的参数通常有4种常用的方式:使用日期字符串参数
使用一系列的参数
时间戳参数
不带参数
使用日期字符串参数
new Date('1988-03-21')这种方式方便且直观。如果现在写的是21-03-1988,我们可以毫不费力想表达的是1988年3月21日。但是如果用JS 编写21-03-1988,则会得到无效的日期。这是有原因的。在世界的不同地方以不同的方式解释日期字符串。例如11-06-2019是2019年6月11日还是 2019年11月6日。你不能确定我指的是哪一个,除非你知道我正在使用的日期系统。在JS中,如果要使用日期字符串参数,则需要使用全球都能接受的格式,其中一种格式是ISO 8601扩展格式。// ISO 8601 Extended format`YYYY-MM-DDTHH:mm:ss:sssZ`YYYY:4位数年份
MM:两位数月份(即 1月为01,12月为12)
DD:两位数的日期(0到31)
-:日期分隔符
T:表示开始时间
HH:24位小时数(0到23)
mm:分钟(0到59)
ss:秒(0到59)
sss:毫秒(0到999)
::时间分隔符
Z:如果存在Z,则日期将设置为UTC,如果Z不存在,则为本地时间。
使用一系列的参数创建
最多可以传入七个参数来创建日期/时间。Year:4位数年份
Month:一年中的某月(0-11)
Day:每月的某天(1-31),如果省略,则默认为1。
Hour:一天中的小时(0-23),如果省略,则默认为0。
Minutes:分钟(0-59),如果省略,则默认为0。
Seconds:秒(0-59),如果省略,则默认为0。
Milliseconds:毫秒(0-999),如果省略,则默认为0。
// 11th June 2019, 5:23:59am, Local Time
new Date(2019, 5, 11, 5, 23, 59)
使用时间戳来创建日期
在JS中,时间戳是自1970年1月1日以来经过的毫秒数(1970年1月1日也称为Unix纪元时间)。根据我的经验,很少使用时间戳来创建日期,一般使用时间戳来比较不同的日期或者格式化日期,后面在讨论。不带参数的形式创建日期
如果创建没有任何参数的日期,则会将日期设置为当前时间(以本地时间为单位)。new Date()小结一波使用 new Date() 创建日期
有四种可能的语法:
- 使用字符串日期值
- 使用一系列参数
- 使用时间戳
- 不带参数
最好不要使用字符串日期值的方法创建日期
最好使用一系列参数方式创建日期
记住月份是从0开始的
格式化日期
多数编程语言都提供了一种格式工具来创您想要的任何日期格式 例如,在PHP中,可以将date("d M Y")格式化成23 1月 2019这样的日期。但是在JS 中格式化日期并不容易。原生 Date对象提供了七种格式化方法,这七种方法中的每一种都会给你一个特定的价值,而且它们毫无用处。const date = new Date(2019, 0, 23, 17, 23, 42)toString:格式化成 "Wed Jan 23 2019 17:23:42 GMT+0800 (中国标准时间)"
toDateString: 格式化成 "Wed Jan 23 2019"
toLocaleString:格式化成 "2019/1/23 下午5:23:42"
toLocaleDateString:格式化成 "2019/1/23"
toGMTString:格式化成 "Wed, 23 Jan 2019 09:23:42 GMT"
toUTCString:格式化成 "Wed, 23 Jan 2019 09:23:42 GMT"
toISOString :格式化成 "2019-01-23T09:23:42.000Z"
编写自定义日期格式
假设想要 2019年1月23日 星期四这样的日期格式。需要知道 Date对象日期方法。要获取这样的格式,用到 Date中的四个方法:getFullYear:获取当地时间4位数的年份
getMonth:获取当时时间的月份,注意从 0 开始
getDate:获取当地时间月中的某一天(1-31)
getDay:获取当地时间的星期几(0-6),星期日(0)开始,到星期六(6)结束。
const d = new Date(2019, 0, 23)
const year = d.getFullYear() // 2019
const date = d.getDate() // 23
getHours:获取当地时间获取小时数(0-23)。
getMinutes:获取本地时间获取分钟(0-59)。
getSeconds:获取本地时间获取秒数(0-59)。
getMilliseconds:获取本地时间获取毫秒(0-999)。
日期的比较
比较日期的前后,可以直接使用>, <, >=和 <=时行比较。const earlier = new Date(2019, 0, 26)const later = new Date(2019, 0, 27)console.log(earlier < later) // true比较两个日期是否一样,就比较麻烦,不能直接用 ==或 ===const a = new Date(2019, 0, 26)const b = new Date(2019, 0, 26)console.log(a == b) // falseconsole.log(a === b) // false可以getTime获取它们的时间戳,用时间戳进行比较。const isSameTime = (a, b) => { return a.getTime() === b.getTime()}const a = new Date(2019, 0, 26)const b = new Date(2019, 0, 26)console.log(isSameTime(a, b)) // true如果只想检查两个日期是否在同一天,可以比较他们的getFullYear,getMonth和getDate值。const isSameDay = (a, b) => { return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate()=== b.getDate()}const a = new Date(2019, 0, 26, 10) // 26 Jan 2019, 10amconst b = new Date(2019, 0, 26, 12) // 26 Jan 2019, 12pmconsole.log(isSameDay(a, b)) // true从另一个日期获取日期
有两种可能的情况,希望从另一个日期获得一个日期。设置另一个日期特定的日期/时间值
从另一个日期添加/减去增量
设置另一个日期特定的日期/时间值
可以使用以下方法设置另一个日期的日期/时间:setFullYear: 设置年份
setMonth:设置月份
setDate:设置每月的某一天
setHours:设置时
setNubytes:设置分
setSeconds:设置秒
setMilliseconds:设置毫秒
从另一个日期添加/减去增量
添加/减去增量有两种通用方法。第一种方法在Stack Overflow上更受欢迎,它简洁,但更难掌握。第二种方法更冗长,但更容易理解。假设希望获得从今天起三天的日期。对于这个例子,假设今天是2019年3月28日。第一种方法
const today = new Date(2019, 2, 28)首先,我们创建一个新的Date对象,这样就不会改变原始日期const finalDate = new Date(today)接下来,我们需要知道要更改的值。因为我们要改变日期,所以我们可以用getDate获得日期const currentDate = today.getDate()因为获取三天后的日期,所以需要在得到的日期加3setDate(currentDate + 3)完整代码:const today = new Date(2019, 2, 28)const finalDate = new Date(today)finalDate.setDate(today.getDate() + 3)console.log(finalDate) // 31 March 2019第二种方法
使用getFullYear,getMonth,getDate方法,更改对应的值, 然后,我们使用new Date创建最终日期。const today = new Date(2019, 2, 28)// Getting required valuesconst year = today.getFullYear()const month = today.getMonh()const day = today.getDate()// Creating a new Date (with the delta)const finalDate = new Date(year, month, day + 3)console.log(finalDate) // 31 March 2019自动日期校正
如果为Date提供一个超出其可接受范围的值,JS 将自动重新计算日期。如下所示,假设我们把日期定在2019年3月33日,日历上没有33日,JS 会自动将3月33日调整为4月2日。这意味着在创建增量时无需担心计算分钟,小时,天,月等,JavaScript会自动处理。总结
以上是生活随笔为你收集整理的js 获得明天0点时间戳_需要知道的JS的日期知识,都在这了的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: python画正方形的代码_Python
- 下一篇: springboot 获取项目路径_怎样