UNPKG

1.37 kBJavaScriptView Raw
1import { normalizeDates } from "./_lib/normalizeDates.js";
2import { startOfDay } from "./startOfDay.js";
3
4/**
5 * The {@link isSameDay} function options.
6 */
7
8/**
9 * @name isSameDay
10 * @category Day Helpers
11 * @summary Are the given dates in the same day (and year and month)?
12 *
13 * @description
14 * Are the given dates in the same day (and year and month)?
15 *
16 * @param laterDate - The first date to check
17 * @param earlierDate - The second date to check
18 * @param options - An object with options
19 *
20 * @returns The dates are in the same day (and year and month)
21 *
22 * @example
23 * // Are 4 September 06:00:00 and 4 September 18:00:00 in the same day?
24 * const result = isSameDay(new Date(2014, 8, 4, 6, 0), new Date(2014, 8, 4, 18, 0))
25 * //=> true
26 *
27 * @example
28 * // Are 4 September and 4 October in the same day?
29 * const result = isSameDay(new Date(2014, 8, 4), new Date(2014, 9, 4))
30 * //=> false
31 *
32 * @example
33 * // Are 4 September, 2014 and 4 September, 2015 in the same day?
34 * const result = isSameDay(new Date(2014, 8, 4), new Date(2015, 8, 4))
35 * //=> false
36 */
37export function isSameDay(laterDate, earlierDate, options) {
38 const [dateLeft_, dateRight_] = normalizeDates(
39 options?.in,
40 laterDate,
41 earlierDate,
42 );
43 return +startOfDay(dateLeft_) === +startOfDay(dateRight_);
44}
45
46// Fallback for modularized imports:
47export default isSameDay;