Correctly determine if date string is a valid date in that format

前端 未结 16 2435
名媛妹妹
名媛妹妹 2020-11-22 17:02

I\'m receiving a date string from an API, and it is formatted as yyyy-mm-dd.

I am currently using a regex to validate the string format, which works ok,

16条回答
  •  难免孤独
    2020-11-22 17:43

    Determine if string is a date, even if string is a non-standard format

    (strtotime doesn't accept any custom format)

    format($format) === $dateStr);
    }
    
    // These return true
    validateDateTime('2001-03-10 17:16:18', 'Y-m-d H:i:s');
    validateDateTime('2001-03-10', 'Y-m-d');
    validateDateTime('2001', 'Y');
    validateDateTime('Mon', 'D');
    validateDateTime('March 10, 2001, 5:16 pm', 'F j, Y, g:i a');
    validateDateTime('March 10, 2001, 5:16 pm', 'F j, Y, g:i a');
    validateDateTime('03.10.01', 'm.d.y');
    validateDateTime('10, 3, 2001', 'j, n, Y');
    validateDateTime('20010310', 'Ymd');
    validateDateTime('05-16-18, 10-03-01', 'h-i-s, j-m-y');
    validateDateTime('Monday 8th of August 2005 03:12:46 PM', 'l jS \of F Y h:i:s A');
    validateDateTime('Wed, 25 Sep 2013 15:28:57', 'D, d M Y H:i:s');
    validateDateTime('17:03:18 is the time', 'H:m:s \i\s \t\h\e \t\i\m\e');
    validateDateTime('17:16:18', 'H:i:s');
    
    // These return false
    validateDateTime('2001-03-10 17:16:18', 'Y-m-D H:i:s');
    validateDateTime('2001', 'm');
    validateDateTime('Mon', 'D-m-y');
    validateDateTime('Mon', 'D-m-y');
    validateDateTime('2001-13-04', 'Y-m-d');
    

提交回复
热议问题