JavaScript 日期的完全指南

在JavaScript中使用日期可能很复杂。学习所有的技巧以及如何使用它们。 处理日期可以很“复杂”。无论使用什么技术,开发人员都会感到痛苦。 JavaScript提供了一个通过强大的内置对象Date来处理日期的功能。 提示:当处理日期时,您可能希望使用一个库。Moment.js和date-fns是最流行的两个。 日期对象 一个日期对象实例表示一个时间点。 尽管名字是Date,它也处理时间。 初始化日期对象 我们使用以下方式初始化一个日期对象。 new Date() 这将创建一个指向当前时间点的日期对象。 在内部,日期以从1970年1月1日(UTC)以来的毫秒表示。这个日期很重要,因为在计算机看来,一切都是在那一天开始的。 您可能对UNIX时间戳很熟悉:它代表了自那个著名日期以来经过的秒数。 如果我们有一个UNIX时间戳,我们可以使用以下方式实例化一个JavaScript日期对象: const timestamp = 1530826365; new Date(timestamp * 1000); 除非时间戳是由JS生成的,否则它已经在正确的比例上。 确保传递一个数字(字符串将得到一个“无效的日期”结果 - 如有疑问请使用parseInt()) 如果我们传递0,我们将得到一个代表1970年1月1日(UTC)时间的日期对象: new Date(0) 如果我们传递一个字符串而不是数字,那么日期对象将使用parse方法来确定您传递的日期。例如: new Date('2018-07-22') new Date('2018-07') // 2018年7月1日,00:00:00 new Date('2018') // 2018年1月1日,00:00:00 new Date('07/22/2018') new Date('2018/07/22') new Date('2018/7/22') new Date('July 22, 2018') new Date('July 22, 2018 07:22:13') new Date('2018-07-22 07:22:13') new Date('2018-07-22T07:22:13') new Date('25 March 2018') new Date('25 Mar 2018') new Date('25 March, 2018') new Date('March 25, 2018') new Date('March 25 2018') new Date('March 2018') // 2018年3月1日,00:00:00 new Date('2018 March') // 2018年3月1日,00:00:00 new Date('2018 MARCH') // 2018年3月1日,00:00:00 new Date('2018 march') // 2018年3月1日,00:00:00 这里有很大的灵活性。您可以在月份或日期中添加或省略前导零。...

如何在 JavaScript 中檢查兩個日期是否是同一天

您如何檢測 JavaScript 中的日期對象實例是否引用了另一個日期對象的同一天? JavaScript 在其標準庫中沒有提供此功能,但您可以使用以下方法來實現: getDate() 返回日期的日期 getMonth() 返回日期的月份(從 0 開始,一月為 0) getFullYear() 返回日期的四位數年份 這是一個簡單的函數,您可以複製/粘貼來進行檢查: const datesAreOnSameDay = (first, second) => first.getFullYear() === second.getFullYear() && first.getMonth() === second.getMonth() && first.getDate() === second.getDate(); 範例用法: datesAreOnSameDay(new Date(), new Date()) // 返回 true

如何在 JavaScript 中檢查日期是否過去的一天

給定一個 JavaScript 日期,如何檢查它是否參考過去的某一天? 我遇到了這個問題:我想要檢查一個日期是否在參考的日期之前。 僅僅使用 getTime() 進行比較是不夠的,因為日期可能有不同的時間。 我最終使用了這個函數: const firstDateIsPastDayComparedToSecond = (firstDate, secondDate) => { if (firstDate.setHours(0,0,0,0) - secondDate.setHours(0,0,0,0) >= 0) { //第一個日期在未來,或者就是今天 return false; } return true; } 我使用 setHours() 來確保我們在同一個時間(00:00:00)比較兩個日期。 這是一個更簡潔、省略了內部返回部分的相同函數的版本: const firstDateIsPastDayComparedToSecond = (firstDate, secondDate) => firstDate.setHours(0,0,0,0) - secondDate.setHours(0,0,0,0) < 0; 以下是如何使用這個函數的簡單示例,將昨天與今天進行比較: const today = new Date(); const yesterday = new Date(today); yesterday.setDate(yesterday.getDate() - 1); firstDateIsPastDayComparedToSecond(yesterday, today); //true firstDateIsPastDayComparedToSecond(today, yesterday); //false

如何在 JavaScript 中确定日期是否是今天

了解如何判断一个 JavaScript Date 对象实例是否代表了“今天”这个日期时间。 给定一个 Date 实例,我们可以使用 getDate()、getMonth() 和 getFullYear() 方法来获取日期的日、月和年,并将它们与今天进行比较,可以通过 new Date() 获取今天的日期时间。 下面是一个小函数,如果参数是今天,则返回 true。 const isToday = (someDate) => { const today = new Date(); return ( someDate.getDate() === today.getDate() && someDate.getMonth() === today.getMonth() && someDate.getFullYear() === today.getFullYear() ); }; 你可以这样使用它: const today = isToday(myDate); 如果需要,可以查看JavaScript 日期指南,了解更多如何处理 Date 对象的方法。

如何從JavaScript日期獲取月份名稱

給定一個JavaScript Date對象實例,如何獲取代表月份名稱的字符串呢? 換句話說,從 const today = new Date() 我們如何得到月份名稱? 每個Date對象實例都有一個toLocaleString()方法,它是JavaScript國際化方法之一。 使用這個方法,你可以根據當前的語言環境得到月份名稱,以下是如何使用它: const today = new Date() today.toLocaleString('default', { month: 'long' }) 根據你的語言環境,你會得到不同的結果。我得到的結果是“十月”。 如果使用"short"格式,我得到的結果是“10月”: today.toLocaleString('default', { month: 'short' }) 第一個參數是語言環境,我們傳遞"default"字符串,你可以傳遞任何你想要的語言環境,例如"it-IT"將返回"ottobre": const today = new Date() today.toLocaleString('it-IT', { month: 'long' })