家好,很高興又見面了,我是"高級前端?進階?",由我帶著大家一起關注前端前沿、深入前端底層技術,大家一起進步,也歡迎大家關注、點贊、收藏、轉發,您的支持是我不斷創作的動力。
Chrono 是 Javascript 中的自然語言日期解析器,它旨在處理大多數日期/時間格式并從任何給定文本中提取信息,內容包括:
目前 Chrono 在 Github 上通過 MIT 協議開源,有超過 3.5k 的 star,值得嘗試。
首先需要通過 NPM 安裝:
npm install --save chrono-node
然后直接在代碼中引入即可:
import * as chrono from 'chrono-node';
chrono.parseDate('An appointment on Sep 12-13');
如果是 Node.js 環境,可以使用下面的代碼:
const chrono = require('chrono-node');
// or `import chrono from 'chrono-node'` for ECMAScript
對于 Chrono 庫來說,只需將字符串傳遞給函數 chrono.parseDate 或 chrono.parse 即可。
import * as chrono from 'chrono-node';
chrono.parseDate('An appointment on Sep 12-13');
// Fri Sep 12 2014 12:00:00 GMT-0500 (CDT)
chrono.parse('An appointment on Sep 12-13');
/* [{
index: 18,
text: 'Sep 12-13',
start: ...
}] */
今天的“星期五”與上個月的“星期五”不同,引用日期的含義取決于它們被提及的時間和地點。 Chrono 允許開發者將引用定義為 Date 或 ParsingReference 對象:
// (Note: the exmaples run on JST timezone)
chrono.parseDate('Friday', new Date(2012, 8 - 1, 23));
// Fri Aug 24 2012 12:00:00 GMT+0900 (JST)
chrono.parseDate('Friday', new Date(2012, 8 - 1, 1));
// Fri Aug 03 2012 12:00:00 GMT+0900 (JST)
chrono.parseDate('Friday at 4pm', {
// Wed Jun 09 2021 21:00:00 GMT+0900 (JST)
// = Wed Jun 09 2021 07:00:00 GMT-0500 (CDT)
instant: new Date(1623240000000),
timezone: 'CDT',
});
// Sat Jun 12 2021 06:00:00 GMT+0900 (JST)
// = Fri Jun 11 2021 16:00:00 GMT-0500 (CDT)
forwardDate(布爾值)假設結果應該在參考日期之后發生。
const referenceDate = new Date(2012, 7, 25);
// Sat Aug 25 2012 00:00:00 GMT+0900 -- The reference date was Saturday
chrono.parseDate('Friday', referenceDate);
// Fri Aug 24 2012 12:00:00 GMT+0900 (JST) -- The day before was Friday
chrono.parseDate('Friday', referenceDate, { forwardDate: true });
// Fri Aug 31 2012 12:00:00 GMT+0900 (JST) -- The following Friday
timezones 覆蓋或添加時區縮寫和偏移量之間的自定義映射。 當希望 Chrono 將某些文本解析為給定的時區偏移量時,請使用此選項。 Chrono 支持明確的(正常)時區映射和模糊映射,其中夏令時期間和之外的偏移量不同。
// Chrono doesn't understand XYZ, so no timezone is parsed
chrono.parse('at 10:00 XYZ', new Date(2023, 3, 20))
// "knownValues": {"hour": 10, "minute": 0}
// Make Chrono parse XYZ as offset GMT-0300 (180 minutes)
chrono.parse('at 10:00 XYZ', new Date(2023, 3, 20), { timezones: { XYZ: -180 } })
// "knownValues": {"hour": 10, "minute": 0, "timezoneOffset": -180}
// Make Chrono parse XYZ as offset GMT-0300 outside of DST, and GMT-0200 during DST. Assume DST is between
import { getLastDayOfMonthTransition } from "timezone";
import { Weekday, Month } from "parsing";
const parseXYZAsAmbiguousTz = {
timezoneOffsetDuringDst: -120,
timezoneOffsetNonDst: -180,
dstStart: (year: number) => getLastWeekdayOfMonth(year, Month.FEBRUARY, Weekday.SUNDAY, 2),
dstEnd: (year: number) => getLastWeekdayOfMonth(year, Month.SEPTEMBER, Weekday.SUNDAY, 3)
};
// Parsing a date which falls within DST
chrono.parse('Jan 1st 2023 at 10:00 XYZ', new Date(2023, 3, 20), { timezones: { XYZ: parseXYZAsAmbiguousTz } })
// "knownValues": {"month": 1, ..., "timezoneOffset": -180}
// Parsing a non-DST date
chrono.parse('Jun 1st 2023 at 10:00 XYZ', new Date(2023, 3, 20), { timezones: { XYZ: parseXYZAsAmbiguousTz } })
// "knownValues": {"month": 6, ..., "timezoneOffset": -120}
https://github.com/wanasit/chrono
https://dexlock.com/blog/a-dive-into-nlp-date-parsers/
在前端開發中,多多少少有項目需要 jQuery日期選擇/日歷的插件,以下就為大家整理出一些 jQuery日期/日歷,希望對大家有所幫助!還有更好用的,也不否在下方留言,分享大家。PS:(標題博眼球的,知道大家都知道這些的。呵呵呵)
1.jQuery日歷插件 jQuery Week Calendar (是一個 jQuery 的按周顯示的日歷插件,能夠在周日歷網格中顯示事件)
Web開發中,經常需要獲取當前的日期和時間,以便于在頁面中顯示或進行相應的操作。JavaScript提供了一些內置的方法,可以方便地獲取當前的日期和時間。
要獲取當前的日期,我們可以使用Date對象的getDate()、getMonth()和getFullYear()方法。具體步驟如下:
下面是一個示例代碼:
var now = new Date();
var day = now.getDate();
var month = now.getMonth() + 1;
var year = now.getFullYear();
console.log("當前日期為:" + year + "-" + month + "-" + day);
運行上述代碼,控制臺將輸出當前日期,例如:當前日期為:2023-10-31。
要獲取當前的時間,我們可以使用Date對象的getHours()、getMinutes()和getSeconds()方法。具體步驟如下:
下面是一個示例代碼:
var now = new Date();
var hours = now.getHours();
var minutes = now.getMinutes();
var seconds = now.getSeconds();
console.log("當前時間為:" + hours + ":" + minutes + ":" + seconds);
運行上述代碼,控制臺將輸出當前時間,例如:當前時間為:13:24:21。
如果需要同時獲取當前的日期和時間,可以將上述兩個步驟合并。具體步驟如下:
創建一個Date對象,沒有傳入任何參數,即默認為當前時間。
下面是一個示例代碼:
var now = new Date();
var day = now.getDate();
var month = now.getMonth() + 1;
var year = now.getFullYear();
var hours = now.getHours();
var minutes = now.getMinutes();
var seconds = now.getSeconds();
console.log("當前日期和時間為:" + year + "-" + month + "-" + day + " " + hours + ":" + minutes + ":" + seconds);
運行上述代碼,控制臺將輸出當前日期和時間,例如:當前日期和時間為:2023-10-31 13:25:13。
通過JavaScript的Date對象,我們可以方便地獲取當前的日期和時間。通過使用getDate()、getMonth()、getFullYear()、getHours()、getMinutes()和getSeconds()方法,可以輕松地獲取所需的日期和時間信息。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。