You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hi dear Babakhani First, thanks for this useful library.
Second:
I have an String input like this: 1399-02-10
It should be Parse from value of a <Input type="text"...
So sure the input value is String.
I need to set it on persianDate() but
There is no generic way for that.
Expected Behavior
A) I can set it as an array like this : var d = new persianDate(Input.value.split('-'));
or
B) I can set it as a standard time string value like 1399-02-01T22:10:11 var d = new persianDate(Input.value);
Current Behavior
A) It will not respond or It will show a wrong date (In older version). because the format of the array is String.
or
B) Almost no option.
Note: The Date can do it. var d = new Date('2019-10-11T20:10:00');
Possible Solution
A)
Instead of every time converting values to string, just convert it in the main function.
By changing the setup function to this:
_createClass(PersianDateClass, [{
key: 'setup',
value: function setup(input) {
// Convert Any thing to Gregorian Date
if (TypeChecking.isDate(input)) {
this._gDateToCalculators(input);
} else if (TypeChecking.isArray(input)) {
// Removing invalid detector & Adding parseInt() for every input
this.algorithmsCalc([parseInt(input[0]), input[1] ? parseInt(input[1]) : 1, input[2] ? parseInt(input[2]) : 1, input[3] ? parseInt(input[3]) : 0, input[4] ? parseInt(input[4]) : 0, input[5] ? parseInt(input[5]) : 0, input[6] ? parseInt(input[6]) : 0]);
} else if (TypeChecking.isNumber(input)) {
var fromUnix = new Date(input);
this._gDateToCalculators(fromUnix);
}
... B)
In next
Accepting strings that have possible characters by a code like this:
// instance of pDate
else if (input instanceof PersianDateClass) {
this.algorithmsCalc([input.year(), input.month(), input.date(), input.hour(), input.minute(), input.second(), input.millisecond()]);
}
// ASP.NET JSON Date
else if (input && input.substring(0, 6) === '/Date(') {
var fromDotNet = new Date(parseInt(input.substr(6)));
this._gDateToCalculators(fromDotNet);
// String value
} else if (RegExp(/[\\\/T\-\_\.\:\s\,\;\"\'\(\)\[\]\!\+]/g).test(String(input))) {
input=String(input).replace(/[\u0660-\u0669\u06f0-\u06f9]/g,function (c){return c.charCodeAt(0)&0xf;}).replace(/[\\\/T\-\_\.\:\s\,\;\"\'\(\)\[\]\!\+]+/g,'-').split('-');
this.algorithmsCalc([parseInt(input[0]), input[1] ? parseInt(input[1]) : 1, input[2] ? parseInt(input[2]) : 1, input[3] ? parseInt(input[3]) : 0, input[4] ? parseInt(input[4]) : 0, input[5] ? parseInt(input[5]) : 0, input[6] ? parseInt(input[6]) : 0]);
} else {
var now = new Date();
this._gDateToCalculators(now);
}
}
Explain:
Finding any possible characters that can be in date formats like:
Detecting by RegEx, if is there, convert all (Persian/Arabic number to English &) All other characters to Dash and also removing double dashes.
Then split them in an array by split()
Sure my coding is not perfect on your library but i think something close to this can be useful.
Best Regards.
The text was updated successfully, but these errors were encountered:
Hi dear Babakhani
First, thanks for this useful library.
Second:
I have an String input like this:
1399-02-10
It should be Parse from value of a
<Input type="text"...
So sure the input value is String.
I need to set it on
persianDate()
butThere is no generic way for that.
Expected Behavior
var d = new persianDate(Input.value.split('-'));
or
1399-02-01T22:10:11
var d = new persianDate(Input.value);
Current Behavior
or
Note: The Date can do it.
var d = new Date('2019-10-11T20:10:00');
Possible Solution
A)
Instead of every time converting values to string, just convert it in the main function.
By changing the setup function to this:
...
B)
In next
Accepting strings that have possible characters by a code like this:
Explain:
Finding any possible characters that can be in date formats like:
Detecting by RegEx, if is there, convert all (Persian/Arabic number to English &) All other characters to Dash and also removing double dashes.
Then split them in an array by
split()
Sure my coding is not perfect on your library but i think something close to this can be useful.
Best Regards.
The text was updated successfully, but these errors were encountered: