isAfter

isAfter

  • (date1: date) => (date2: date) => boolean
  1. Test if a date is after another

    const janFirst2025 = new Date('2025 1 1')
    const isAfterJanFirst2025 = isAfter(janFirst2025)
    
    const now = new Date()
    isAfterJanFirst2025(now) // is true
    
    const decFirst2024 = new Date('2024 12 1')
    isAfterJanFirst2025(decFirst2024) // is false
    const janFirst2025 = new Date('2025 1 1')
    const isAfterJanFirst2025 = isAfter(janFirst2025)
    
    const now = new Date()
    isAfterJanFirst2025(now) // is true
    
    const decFirst2024 = new Date('2024 12 1')
    isAfterJanFirst2025(decFirst2024) // is false
    
    const janFirst2025 = new Date('2025 1 1')
    const isAfterJanFirst2025 = isAfter(janFirst2025)
    
    const now = new Date()
    isAfterJanFirst2025(now) // is true
    
    const decFirst2024 = new Date('2024 12 1')
    isAfterJanFirst2025(decFirst2024) // is false
    const janFirst2025 = new Date('2025 1 1')
    const isAfterJanFirst2025 = isAfter(janFirst2025)
    
    const now = new Date()
    isAfterJanFirst2025(now) // is true
    
    const decFirst2024 = new Date('2024 12 1')
    isAfterJanFirst2025(decFirst2024) // is false
    
  2. Sometimes we need to compare dates. Below, it's fridge cleaning time. Let's keep the items that are still good.

    const now = new Date('2025 1 15')
    
    const fridge = {
      milk: {
        goodUntil: new Date('2025 1 12'),
      },
      eggs: {
        goodUntil: new Date('2025 1 16'),
      },
    }
    
    const isStillGood = compose([get('goodUntil'), isAfter(now)])
    
    const clean = keepWhen(isStillGood)
    const freshFridge = clean(fridge)
    console.log(freshFridge)
    // is {
    //   eggs: {
    //     goodUntil: 2025 1 16
    //   }
    // }
    const now = new Date('2025 1 15')
    
    type Perishable = { goodUntil: Date }
    type Fridge = Record<string, Perishable>
    const fridge: Fridge = {
      milk: {
        goodUntil: new Date('2025 1 12'),
      },
      eggs: {
        goodUntil: new Date('2025 1 16'),
      },
    }
    
    const isStillGood = compose([get('goodUntil')<Perishable>, isAfter(now)])
    
    const clean = keepWhen(isStillGood)<Fridge>
    const freshFridge = clean(fridge)
    console.log(freshFridge)
    // is {
    //   eggs: {
    //     goodUntil: 2025 1 16
    //   }
    // }
    
    const now = new Date('2025 1 15')
    
    const fridge = {
      milk: {
        goodUntil: new Date('2025 1 12'),
      },
      eggs: {
        goodUntil: new Date('2025 1 16'),
      },
    }
    
    const isStillGood = compose([
      get('goodUntil'),
      isAfter(now),
    ])
    
    const clean = keepWhen(isStillGood)
    const freshFridge = clean(fridge)
    console.log(freshFridge)
    // is {
    //   eggs: {
    //     goodUntil: 2025 1 16
    //   }
    // }
    const now = new Date('2025 1 15')
    
    type Perishable = { goodUntil: Date }
    type Fridge = Record<string, Perishable>
    const fridge: Fridge = {
      milk: {
        goodUntil: new Date('2025 1 12'),
      },
      eggs: {
        goodUntil: new Date('2025 1 16'),
      },
    }
    
    const isStillGood = compose([
      get('goodUntil')<Perishable>,
      isAfter(now),
    ])
    
    const clean = keepWhen(isStillGood)<Fridge>
    const freshFridge = clean(fridge)
    console.log(freshFridge)
    // is {
    //   eggs: {
    //     goodUntil: 2025 1 16
    //   }
    // }