76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav GlassYUI.add('datatype-date-parse', function(Y) {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass/**
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass * Parse number submodule.
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass *
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass * @module datatype
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass * @submodule datatype-date-parse
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass * @for DataType.Date
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass */
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glassvar LANG = Y.Lang;
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav GlassY.mix(Y.namespace("DataType.Date"), {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass /**
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass * Converts data to type Date.
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass *
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass * @method parse
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass * @param data {String | Number} Data to convert. Values supported by the Date constructor are supported.
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass * @return {Date} A Date, or null.
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass */
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass parse: function(data) {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass var date = null;
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass //Convert to date
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass if(!(LANG.isDate(data))) {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass date = new Date(data);
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass }
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass else {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass return date;
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass }
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass // Validate
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass if(LANG.isDate(date) && (date != "Invalid Date") && !isNaN(date)) { // Workaround for bug 2527965
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass return date;
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass }
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass else {
a15bb17cdc73125893c21175e7afcdd80fccde10Allen Rabinovich Y.log("Could not convert data to type Date", "warn", "date");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass return null;
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass }
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass }
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass});
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass// Add Parsers shortcut
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav GlassY.namespace("Parsers").date = Y.DataType.Date.parse;
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass}, '@VERSION@' );