1
1
import moment from "moment" ;
2
2
3
- /**
4
- * Gets some useful date booleans for a given date
5
- * @param date the date
6
- * @returns some useful date booleans like isTomorrow, isNextWeek, etc.
7
- */
8
- export function getUsefulDateBooleans ( date : Date ) {
9
- const isOverdue = moment ( ) . isAfter ( date ) ;
10
- const isToday = moment ( date ) . isBetween (
11
- moment ( ) . startOf ( "day" ) ,
12
- moment ( ) . endOf ( "day" )
13
- ) ;
3
+ export function isTomorrow ( date : Date ) {
4
+ const beginningOfTmr = moment ( ) . add ( 1 , "day" ) . startOf ( "day" ) ;
5
+ const endOfTmr = moment ( ) . add ( 1 , "day" ) . endOf ( "day" ) ;
6
+ return moment ( date ) . isBetween ( beginningOfTmr , endOfTmr ) ;
7
+ }
8
+
9
+ export function isToday ( date : Date ) {
10
+ return moment ( date ) . isBetween ( moment ( ) . startOf ( "day" ) , moment ( ) . endOf ( "day" ) ) ;
11
+ }
12
+
13
+ export function isOverdue ( date : Date ) {
14
+ return moment ( ) . isAfter ( date ) ;
15
+ }
16
+
17
+ export function isThisWeek ( date : Date ) {
18
+ const lastDayOfWeek = moment ( ) . endOf ( "isoWeek" ) ;
19
+ return moment ( date ) . isBefore ( lastDayOfWeek ) ;
20
+ }
21
+
22
+ export function isNextWeek ( date : Date ) {
14
23
const lastDayOfWeek = moment ( ) . endOf ( "isoWeek" ) ;
15
24
const lastDayOfNextWeek = moment ( ) . add ( 1 , "week" ) . endOf ( "isoWeek" ) ;
16
- const isThisWeek = moment ( date ) . isBefore ( lastDayOfWeek ) ;
17
- const isNextWeek =
25
+ return (
18
26
moment ( date ) . isAfter ( lastDayOfWeek ) &&
19
- moment ( date ) . isBefore ( lastDayOfNextWeek ) ;
20
- const beginningOfTmr = moment ( ) . add ( 1 , "day" ) . startOf ( "day" ) ;
21
- const endOfTmr = moment ( ) . add ( 1 , "day" ) . endOf ( "day" ) ;
22
- const isTomorrow = moment ( date ) . isBetween ( beginningOfTmr , endOfTmr ) ;
23
- return { isOverdue, isToday, isThisWeek, isNextWeek, isTomorrow } ;
27
+ moment ( date ) . isBefore ( lastDayOfNextWeek )
28
+ ) ;
24
29
}
25
30
26
31
/**
@@ -29,18 +34,15 @@ export function getUsefulDateBooleans(date: Date) {
29
34
* @returns string of the relative time
30
35
*/
31
36
export function getEnglishDay ( date : Date ) : string {
32
- const { isThisWeek, isToday, isOverdue, isTomorrow, isNextWeek } =
33
- getUsefulDateBooleans ( date ) ;
34
-
35
- const dateSection = isToday
37
+ const dateSection = isToday ( date )
36
38
? "Today"
37
- : isOverdue
39
+ : isOverdue ( date )
38
40
? moment ( date ) . fromNow ( )
39
- : isTomorrow
41
+ : isTomorrow ( date )
40
42
? "Tomorrow"
41
- : isThisWeek
43
+ : isThisWeek ( date )
42
44
? moment ( date ) . format ( "dddd" )
43
- : isNextWeek
45
+ : isNextWeek ( date )
44
46
? "Next " + moment ( date ) . format ( "dddd" )
45
47
: moment ( date ) . format ( "MMM D" ) ;
46
48
return dateSection ;
0 commit comments