How to create an array of dates between a start and end date in TypeScript

2 Answers

0 votes
let start: Date = new Date("2025-04-01");
let end: Date   = new Date("2025-04-16");
let arr: any    = [];
  
for (let d: Date = start; d <= end; d.setDate(d.getDate() + 1)) {
    arr.push(d.toString());
}
 
console.log(arr);



/*
run:

[
  'Tue Apr 01 2025 00:00:00 GMT+0000 (Coordinated Universal Time)',
  'Wed Apr 02 2025 00:00:00 GMT+0000 (Coordinated Universal Time)',
  'Thu Apr 03 2025 00:00:00 GMT+0000 (Coordinated Universal Time)',
  'Fri Apr 04 2025 00:00:00 GMT+0000 (Coordinated Universal Time)',
  'Sat Apr 05 2025 00:00:00 GMT+0000 (Coordinated Universal Time)',
  'Sun Apr 06 2025 00:00:00 GMT+0000 (Coordinated Universal Time)',
  'Mon Apr 07 2025 00:00:00 GMT+0000 (Coordinated Universal Time)',
  'Tue Apr 08 2025 00:00:00 GMT+0000 (Coordinated Universal Time)',
  'Wed Apr 09 2025 00:00:00 GMT+0000 (Coordinated Universal Time)',
  'Thu Apr 10 2025 00:00:00 GMT+0000 (Coordinated Universal Time)',
  'Fri Apr 11 2025 00:00:00 GMT+0000 (Coordinated Universal Time)',
  'Sat Apr 12 2025 00:00:00 GMT+0000 (Coordinated Universal Time)',
  'Sun Apr 13 2025 00:00:00 GMT+0000 (Coordinated Universal Time)',
  'Mon Apr 14 2025 00:00:00 GMT+0000 (Coordinated Universal Time)',
  'Tue Apr 15 2025 00:00:00 GMT+0000 (Coordinated Universal Time)',
  'Wed Apr 16 2025 00:00:00 GMT+0000 (Coordinated Universal Time)'
]

*/

 



answered Apr 16 by avibootz
edited Apr 16 by avibootz
0 votes
let start: Date = new Date("2025-04-01");
let end: Date   = new Date("2025-04-16");
let arr: any    = [];
  
do {
   arr.push(new Date(start));
   start.setDate(start.getDate() + 1);
} while(start <= end)
 
console.log(arr);

   
   
/*
run:
  
[
Date: "2025-04-01T00:00:00.000Z", 
Date: "2025-04-02T00:00:00.000Z", 
Date: "2025-04-03T00:00:00.000Z", 
Date: "2025-04-04T00:00:00.000Z", 
Date: "2025-04-05T00:00:00.000Z", 
Date: "2025-04-06T00:00:00.000Z", 
Date: "2025-04-07T00:00:00.000Z", 
Date: "2025-04-08T00:00:00.000Z", 
Date: "2025-04-09T00:00:00.000Z", 
Date: "2025-04-10T00:00:00.000Z", 
Date: "2025-04-11T00:00:00.000Z", 
Date: "2025-04-12T00:00:00.000Z", 
Date: "2025-04-13T00:00:00.000Z", 
Date: "2025-04-14T00:00:00.000Z", 
Date: "2025-04-15T00:00:00.000Z", 
Date: "2025-04-16T00:00:00.000Z"
] 
   
*/

 



answered Apr 16 by avibootz
...