strToDate(): Don't parse 01/01/08 as the year 8
Regression from b7dc0d8b0a
(5.0.81)
This commit is contained in:
parent
c882488ef7
commit
0620b16d3e
2 changed files with 20 additions and 7 deletions
|
@ -317,7 +317,9 @@ Zotero.Date = new function(){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var zeroYear = date.year && date.year.toString().startsWith('0');
|
// Parse pre-1000 years with leading zeroes (001, 0001, 012, 0012, 0123, but not 08)
|
||||||
|
var zeroYear = date.year
|
||||||
|
&& /^(0{2,3}[1-9]|0{1,2}[1-9][0-9]|0[1-9][0-9]{2})$/.test(date.year.toString());
|
||||||
if(date.year) date.year = parseInt(date.year, 10);
|
if(date.year) date.year = parseInt(date.year, 10);
|
||||||
if(date.day) date.day = parseInt(date.day, 10);
|
if(date.day) date.day = parseInt(date.day, 10);
|
||||||
if(date.month) {
|
if(date.month) {
|
||||||
|
|
|
@ -183,14 +183,25 @@ describe("Zotero.Date", function() {
|
||||||
});
|
});
|
||||||
|
|
||||||
it("should parse two- and three-digit dates with leading zeros", function () {
|
it("should parse two- and three-digit dates with leading zeros", function () {
|
||||||
var o = Zotero.Date.strToDate('0068');
|
var o;
|
||||||
assert.equal(o.year, 68);
|
|
||||||
|
|
||||||
o = Zotero.Date.strToDate('068');
|
o = Zotero.Date.strToDate('001');
|
||||||
assert.equal(o.year, 68);
|
assert.equal(o.year, 1);
|
||||||
|
|
||||||
o = Zotero.Date.strToDate('0168');
|
o = Zotero.Date.strToDate('0001');
|
||||||
assert.equal(o.year, 168);
|
assert.equal(o.year, 1);
|
||||||
|
|
||||||
|
o = Zotero.Date.strToDate('012');
|
||||||
|
assert.equal(o.year, 12);
|
||||||
|
|
||||||
|
o = Zotero.Date.strToDate('0012');
|
||||||
|
assert.equal(o.year, 12);
|
||||||
|
|
||||||
|
o = Zotero.Date.strToDate('0123');
|
||||||
|
assert.equal(o.year, 123);
|
||||||
|
|
||||||
|
o = Zotero.Date.strToDate('01/01/08');
|
||||||
|
assert.equal(o.year, 2008);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("should parse two-digit year greater than current year as previous century", function () {
|
it("should parse two-digit year greater than current year as previous century", function () {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue