     datetimes = []
     for i in [0..1]
       if row[headers[MODES[i]]]
-        newDate = moment(row[headers[MODES[i]]], 'MM/DD/YYYY hh:mm:ss a')
+        newDate = moment(row[headers[MODES[i]]], 'M/D/YYYY hh:mm:ss a')
         if not newDate or
            not newDate.isValid() or
-           newDate.format('MM/DD/YYYY') isnt row[headers.today]
+           newDate.format('M/D/YYYY') isnt row[headers.today]
           newDate = moment(row[headers.today] + ' ' +
                               row[headers[MODES[i]]], 'MM/DD/YYYY hh:mm:ss a')
         datetimes.push newDate.tz(user.timetable.timezone.name)

      if user.punches and
         user.punches.length > 0 and
         user.punches.slice(-1)[0].mode is 'out'
        return 'You cannot punch out before punching in.'
    # if mode is 'unpaid' and user is non-salary
    else if @mode is 'unpaid' and not user.salary
      return 'You aren\'t eligible to punch for unpaid time.'

      if user.punches and
         user.punches.length > 0 and
         user.punches.slice(-1)[0].mode is 'in'
        last = user.punches.slice(-1)[0]
        time = last.times[0].tz(user.timetable.timezone.name)
        return "You haven't punched out yet. Your last in-punch was at #{time.format('h:mma')} on #{time.format('dddd, MMMM Do')}."
      if elapsed
        # if mode is 'vacation' and user doesn't have enough vacation time
        if @mode is 'vacation' and
