Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Validates date/time value (mm/dd/yyyy hh:mm:ss AM|PM)
- function validateDateTime(value, errorOnEmpty) {
- // capture all the parts (mm/dd/yyyy hh:mm:ss AM|PM)
- var matches = value.match(/^(\d{1,2})\/(\d{1,2})\/(\d{4}) (\d{1,2}):(\d{2}):(\d{2})\s*(AM|PM)$/i);
- var isValid = true;
- if (errorOnEmpty == true && (value == '' || value == null)) {
- // invalid
- isValid = false;
- } else if (value != '' && value != null) {
- //alt:
- // value.match(/^(\d{2}).(\d{2}).(\d{4}).(\d{2}).(\d{2}).(\d{2})$/);
- // also matches 22/05/2013 11:23:22 and 22a0592013,11@23a22
- if (matches === null) {
- // invalid
- isValid = false;
- } else {
- // now lets check the date sanity
- var year = parseInt(matches[3], 10);
- var month = parseInt(matches[2], 10) - 1; // months are 0-11
- var day = parseInt(matches[1], 10);
- var hour = parseInt(matches[4], 10);
- var minute = parseInt(matches[5], 10);
- var second = parseInt(matches[6], 10);
- // Convert AM/PM values to 24 hour time
- if (matches[7].toUpperCase() == 'PM') {
- if (hour < 12) {
- hour = hour + 12;
- } else if (hour > 12) {
- // invalid
- isValid = false;
- }
- } else if (matches[7].toUpperCase() == 'AM') {
- if (hour > 12) {
- // invalid
- isValid = false;
- } else if (hour == 12) {
- hour = 0;
- }
- }
- if (isValid == true) {
- var date = new Date(year, month, day, hour, minute, second);
- if (date.getFullYear() !== year
- || date.getMonth() != month
- || date.getDate() !== day
- || date.getHours() !== hour
- || date.getMinutes() !== minute
- || date.getSeconds() !== second
- ) {
- // invalid
- isValid = false;
- } else {
- // valid
- isValid = true;
- }
- }
- }
- } else {
- // valid
- isValid = true;
- }
- return isValid;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement