( date: DateArg<DateType>, values: DateValues, options?: SetOptions<ResultDate>, )
| 45 | * //=> Mon Sep 01 2014 12:23:45 |
| 46 | */ |
| 47 | export function set<DateType extends Date, ResultDate extends Date = DateType>( |
| 48 | date: DateArg<DateType>, |
| 49 | values: DateValues, |
| 50 | options?: SetOptions<ResultDate>, |
| 51 | ): ResultDate { |
| 52 | let _date = toDate(date, options?.in); |
| 53 | |
| 54 | // Check if date is Invalid Date because Date.prototype.setFullYear ignores the value of Invalid Date |
| 55 | if (isNaN(+_date)) return constructFrom(options?.in || date, NaN); |
| 56 | |
| 57 | if (values.year != null) _date.setFullYear(values.year); |
| 58 | if (values.month != null) _date = setMonth(_date, values.month); |
| 59 | if (values.date != null) _date.setDate(values.date); |
| 60 | if (values.hours != null) _date.setHours(values.hours); |
| 61 | if (values.minutes != null) _date.setMinutes(values.minutes); |
| 62 | if (values.seconds != null) _date.setSeconds(values.seconds); |
| 63 | if (values.milliseconds != null) _date.setMilliseconds(values.milliseconds); |
| 64 | |
| 65 | return _date; |
| 66 | } |
no test coverage detected