holiday-jp-dayjs
v0.1.2
Published
Wrapper of @holiday-jp/holiday_jp with Day.js, in fixed timezone 'Asia/Tokyo'
Downloads
12
Readme
holiday-jp-dayjs
Wrapper of @holiday-jp/holiday_jp with Day.js
1. Features
✅ Gets holidays in Japan utilizing @holiday-jp/holiday_jp
✅ Checks the given date in fixed timezone "Asia/Tokyo", independent of running environment
✅ Fixes bug of function: between
❌ Unable to load specific years only, but all the years automatically
2. Install & Usage
In HTML
<script src="https://cdn.jsdelivr.net/npm/holiday-jp-dayjs@^0.1.0/umd/min.js"></script>
<script>
let date = new Date("2010-09-20T00:00+0900")
console.log(holiday_jp_dayjs.isHoliday(date)); // true; 敬老の日
</script>
In Node
npm install holiday-jp-dayjs
import { between } from "holiday-jp-dayjs";
const days = between(
new Date('2010-09-14T00:00+0900'),
new Date('2010-09-21T00:00+0900'),
)
console.log(days[0].name) // 敬老の日
3. Motivation
Timezone Affected
The original implementation of @holiday-jp/holiday_jp is affected by timezone. When run on an environment in timezone except "Asia/Tokyo", output may be ambiguous 😵
The following simple code runs as expected in "Asia/Tokyo". But in other timezone, for example "UTC", the result is false
because its local date-time is "2021-12-31T15:00:00+0000". What we want to know is whether the given datetime is holiday is Japan, not in UTC 🤣
import { isHoliday } from "@holiday-jp/holiday_jp"
let date = new Date("2022-01-01T00:00:00+0900")
isHoliday(date) // expected true, as "New Year's Day"
Fixed Timezone
In this library, all the date values are manipulated in "Asia/Tokyo" using Day.js, which is light and modern date-operation library 👍
4. Update
This library uses data file of all the holiday provided by @holiday-jp/holiday_jp. GithubAction workflow runs periodically and checks updates of dependencies including @holiday-jp/holiday_jp.
- Check update of dependencies
- Publish PR if any update
- Build & Publish to npm when PR merged