diff --git a/src/date.js b/src/date.js index d8459e9..7b7381d 100644 --- a/src/date.js +++ b/src/date.js @@ -189,7 +189,7 @@ class ExtDate extends Date { if (this.approximate.value) { values = this.approximate.marks(values, '~') - .map(value => value.replace(/~\?/, '%')) + .map(value => value.replace(/(~\?)|(\?~)/, '%')) } return values.join('-') diff --git a/test/date.js b/test/date.js index c28be78..43de41d 100644 --- a/test/date.js +++ b/test/date.js @@ -83,6 +83,16 @@ describe('Date', () => { values: [2004, 5, 11], uncertain: 'month', approximate: 'month' }).edtf).to.eql('2004-%06-11')) + it('YYYY%-MM-DD', () => + expect(new Date({ + values: [2004, 5, 11], uncertain: 'year', approximate: 'year' + }).edtf).to.eql('2004%-06-11')) + + it('YYYY?-MM~-DD', () => + expect(new Date({ + values: [2004, 5, 11], uncertain: 'year', approximate: 'xxxxxxdd' + }).edtf).to.eql('2004?-06~-11')) + it('YYYY?-MM-?DD', () => expect(new Date({ values: [2004, 5, 11], uncertain: 'xxxxmmxx'