JSFiddle - React, Tailwind, and code Playground
by daybarr
HTML
<div><input type="text" value="2008-01-12" auto="1" name="datefrom" id="datefrom" /></div>
<div><input type="text" value="2008-01-12" auto="1" name="datefrom2" id="datefrom2" /></div>
JavaScript
(function ($) {
var defaults = {
leadcntYear: 3 //This many elements will be shown before and after the selected year
};
var methods = {
init: function (opt) {
return this.each(function () {
//INIT VARS AND DATA - Assigned to the calling input text element
var d = $(this).data('dt');
if (!d) {
var dpres = methods.parseDate($(this).val());
console.log(dpres);
}
});
},
parseDate: function (datestr) {
var dateparts = {};
//Y-M-D
console.log('datestr', datestr);
$.each(datestr.split(''), function(i, c) {
console.log(' '+i+': '+c+'('+c.charCodeAt(0)+')');
});
var re = /^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})$/g;
var dtmp = re.exec(datestr);
if (dtmp) {
dateparts.year = dtmp[1];
dateparts.month = dtmp[2].replace(/^0/g, '');
dateparts.day = dtmp[3].replace(/^0/g, '');
dateparts.quarter = null;
return dateparts;
} //if
//Y-M
dtmp = /^([0-9]{4})-([0-9]{1,2})$/g.exec(datestr);
if (dtmp) {
dateparts.year = dtmp[1];
dateparts.month = dtmp[2].replace(/^0/g, '');
dateparts.day = null;
dateparts.quarter = null;
return dateparts;
} //if
//Year only
dtmp = /^([0-9]{4})$/g.exec(datestr);
if (dtmp) {
dateparts.year = dtmp[1];
dateparts.month = null;
dateparts.day = null;
dateparts.quarter = null;
return dateparts;
} //if
//Year + quarter
dtmp = /^([0-9]{4})-([0-9])Q$/g.exec(datestr);
if (dtmp) {
dateparts.year = dtmp[1];
dateparts.month = null;
dateparts.day = null;
dateparts.quarter = dtmp[2];
return dateparts;
} //if
return null;
}
};
$.fn.dt = function (method) {
// Method calling logic
if (methods[method]) {
return methods[method].apply(this,...