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 这里有很大的灵活性。您可以在月份或日期中添加或省略前导零。...

Moment.js 教學

Moment.js 是一個在 JavaScript 中處理日期非常有幫助的庫。 Moment.js 是一個非常棒的 JavaScript 库,可以幫助你處理日期,不管是在瀏覽器上還是在 Node.js 中都可以使用。 這篇文章旨在解釋這個庫的基本知識和最常見的用法。 安裝 你可以直接在你的頁面中使用 script 標籤引入它,從 unpkg.com: <script src="https://unpkg.com/moment" /> 或者使用 npm 安裝: npm install moment 如果你使用 npm 安裝,需要用 import 引入這個包(使用 ES 模块): import moment from 'moment' 或者用 require 引入它(使用 CommonJS): const moment = require('moment') 獲取當前日期和時間 const date = moment() 解析日期 你可以通過傳遞一個字符串給 moment 對象來初始化它。 const date = moment(string) 它可以接受任意字符串,按照以下順序解析: ISO 8601 RFC 2822 日期時間格式 Date 對象接受的格式 ISO 8601 絕對是最方便的。這是一個格式參考: 格式 意義 範例 YYYY 4 位數年份 2018 YY 2 位數年份 18 M 2 位數月份,忽略前導 0 7 MM 2 位數月份 07 MMM 3 字母月份名稱 Jul MMMM 完整的月份名稱 July dddd 完整的星期名稱 Sunday gggg 4 位數年份的星期 2018 gg 2 位數年份的星期 18 w 不帶前導零的一年中的星期數 18 ww 帶有前導零的一年中的星期數 18 e 星期的第幾天,從 0 開始 4 D 2 位數的日期,忽略前導 0 9 DD 2 位數的日期 09 Do 帶序數的日期 9th T 表示時間部分的開始 HH 2 位數的小時(24 小時制),從 0 到 23 22 H 2 位數的小時(24 小時制),從 0 到 23,不帶前導 0 22 kk 2 位數的小時(24 小時制),從 1 到 24 23 k 2 位數的小時(24 小時制),從 1 到 24,不帶前導 0 23 a/A 上午 或者 下午 下午 hh 2 位數的小時(12 小時制) 11 mm 2 位數的分鐘 22 ss 2 位數的秒數 40 s 2 位數的秒數,不帶前導零 40 S 1 位數的毫秒數 1 SS 2 位數的毫秒數 12 SSS 3 位數的毫秒數 123 Z 時區 +02:00 x 毫秒級的 UNIX 時間戳 1410432140575 設置日期 格式化日期 當你想要輸出普通的 JavaScript Date 對象的內容時,你只有很少的選擇來確定格式。你只能使用內置的方法,使用它們來組成你想要的日期。...

parseFloat() 方法

瞭解 JavaScript Number 物件的 parseFloat() 方法 將參數解析為浮點數並返回。參數是一個字串: Number.parseFloat('10') // 10 Number.parseFloat('10.00') // 10 Number.parseFloat('237,21') // 237 Number.parseFloat('237.21') // 237.21 Number.parseFloat('12 34 56') // 12 Number.parseFloat(' 36 ') // 36 Number.parseFloat('36 is my age') // 36 Number.parseFloat('-10') // -10 Number.parseFloat('-10.2') // -10.2 如你所見,Number.parseFloat() 非常靈活。它還可以將帶有文字的字串轉換為數字,並提取第一個數字,但字串必須以數字開頭: Number.parseFloat('I am Flavio and I am 36') // NaN 它僅處理基數為 10 的數字。

如何從 MIME 類型在 Node.js 中獲取文件擴展名

我通過表單傳送了一個文件,在使用 multipart/form-data 的表單之後,我在服務器端的 req.files 中得到了文件對象。 這給我提供了一些信息,例如路徑、名稱、大小、類型等: { logo: File { size: 121920, path: '/var/folders/tn/h8lfq1sj7c33c0p30qgkd3mw0000gn/T/upload_b9e85b7cf989482a1760d82b77fd555a', name: 'Screen Shot 2021-06-07 at 21.40.29.png', type: 'image/png', hash: null, lastModifiedDate: 2021-06-07T22:20:50.150Z, //... } } 請注意,臨時文件路徑沒有擴展名。 如果在服務器端使用文件名沒有問題。但是我想要更改它並使用自己的命名慣例,所以我只需要文件的擴展名。 要獲取它,你可以做兩件事:解析文件名, const path = require('path') path.extname(req.files.logo.name) //.png 這不需要任何第三方庫。 或者你可以使用 mime-types 套件並查看 MIME 類型: const mime = require('mime-types') mime.extension('text/plain') //txt mime.extension('image/png') //png