chrono-node
Advanced tools
Comparing version 1.2.0 to 1.2.1
{ | ||
"name": "chrono", | ||
"main": "chrono.js", | ||
"version": "1.2.0", | ||
"version": "1.2.1", | ||
"homepage": "https://github.com/wanasit/chrono", | ||
@@ -6,0 +6,0 @@ "authors": [ |
@@ -10,3 +10,3 @@ { | ||
"license": "MIT", | ||
"version": "1.2.0", | ||
"version": "1.2.1", | ||
"directories": { | ||
@@ -13,0 +13,0 @@ "source": "./src", |
@@ -10,2 +10,7 @@ /* | ||
- Tuesday, January 13, 2012 | ||
Watch out for: | ||
- January 12:00 | ||
- January 12.44 | ||
- January 1222344 | ||
*/ | ||
@@ -37,3 +42,3 @@ | ||
')?' + | ||
'(?=\\W|$)', 'i'); | ||
'(?=\\W|$)(?!\\:\\d)', 'i'); | ||
@@ -53,2 +58,7 @@ var WEEKDAY_GROUP = 2; | ||
this.extract = function(text, ref, match, opt){ | ||
if (text.indexOf('5 May 12:00') >= 0) { | ||
console.log(match) | ||
} | ||
var result = new ParsedResult({ | ||
@@ -55,0 +65,0 @@ text: match[0].substr(match[1].length, match[0].length - match[1].length), |
@@ -8,3 +8,3 @@ /* | ||
var TIMEZONE_ABBR_MAP = {}; | ||
var TIMEZONE_NAME_PATTERN = new RegExp("^\\s*\\(?([A-Z]{1,4})\\)?(?=\\W|$)", 'i'); | ||
var TIMEZONE_NAME_PATTERN = new RegExp("^\\s*\\(?([A-Z]{2,4})\\)?(?=\\W|$)", 'i'); | ||
@@ -24,3 +24,3 @@ exports.Refiner = function ExtractTimezoneAbbrRefiner() { | ||
if (match) { | ||
var timezoneAbbr = match[1]; | ||
var timezoneAbbr = match[1].toUpperCase(); | ||
if (TIMEZONE_ABBR_MAP[timezoneAbbr] === undefined) { | ||
@@ -46,6 +46,5 @@ return; | ||
} | ||
} | ||
// TODO: Move this to some configuration | ||
TIMEZONE_ABBR_MAP = {"A":60,"ACDT":630,"ACST":570,"ADT":-180,"AEDT":660,"AEST":600,"AFT":270,"AKDT":-480,"AKST":-540,"ALMT":360,"AMST":-180,"AMT":-240,"ANAST":720,"ANAT":720,"AQTT":300,"ART":-180,"AST":-240,"AWDT":540,"AWST":480,"AZOST":0,"AZOT":-60,"AZST":300,"AZT":240,"B":120,"BNT":480,"BOT":-240,"BRST":-120,"BRT":-180,"BST":60,"BTT":360,"C":180,"CAST":480,"CAT":120,"CCT":390,"CDT":-300,"CEST":120,"CET":60,"CHADT":825,"CHAST":765,"CKT":-600,"CLST":-180,"CLT":-240,"COT":-300,"CST":-360,"CVT":-60,"CXT":420,"ChST":600,"D":240,"DAVT":420,"E":300,"EASST":-300,"EAST":-360,"EAT":180,"ECT":-300,"EDT":-240,"EEST":180,"EET":120,"EGST":0,"EGT":-60,"EST":-300,"ET":-300,"F":360,"FJST":780,"FJT":720,"FKST":-180,"FKT":-240,"FNT":-120,"G":420,"GALT":-360,"GAMT":-540,"GET":240,"GFT":-180,"GILT":720,"GMT":0,"GST":240,"GYT":-240,"H":480,"HAA":-180,"HAC":-300,"HADT":-540,"HAE":-240,"HAP":-420,"HAR":-360,"HAST":-600,"HAT":-90,"HAY":-480,"HKT":480,"HLV":-210,"HNA":-240,"HNC":-360,"HNE":-300,"HNP":-480,"HNR":-420,"HNT":-150,"HNY":-540,"HOVT":420,"I":540,"ICT":420,"IDT":180,"IOT":360,"IRDT":270,"IRKST":540,"IRKT":540,"IRST":210,"IST":60,"JST":540,"K":600,"KGT":360,"KRAST":480,"KRAT":480,"KST":540,"KUYT":240,"L":660,"LHDT":660,"LHST":630,"LINT":840,"M":720,"MAGST":720,"MAGT":720,"MART":-510,"MAWT":300,"MDT":-360,"MESZ":120,"MEZ":60,"MHT":720,"MMT":390,"MSD":240,"MSK":240,"MST":-420,"MUT":240,"MVT":300,"MYT":480,"N":-60,"NCT":660,"NDT":-90,"NFT":690,"NOVST":420,"NOVT":360,"NPT":345,"NST":-150,"NUT":-660,"NZDT":780,"NZST":720,"O":-120,"OMSST":420,"OMST":420,"P":-180,"PDT":-420,"PET":-300,"PETST":720,"PETT":720,"PGT":600,"PHOT":780,"PHT":480,"PKT":300,"PMDT":-120,"PMST":-180,"PONT":660,"PST":-480,"PT":-480,"PWT":540,"PYST":-180,"PYT":-240,"Q":-240,"R":-300,"RET":240,"S":-360,"SAMT":240,"SAST":120,"SBT":660,"SCT":240,"SGT":480,"SRT":-180,"SST":-660,"T":-420,"TAHT":-600,"TFT":300,"TJT":300,"TKT":780,"TLT":540,"TMT":300,"TVT":720,"U":-480,"ULAT":480,"UTC":0,"UYST":-120,"UYT":-180,"UZT":300,"V":-540,"VET":-210,"VLAST":660,"VLAT":660,"VUT":660,"W":-600,"WAST":120,"WAT":60,"WEST":60,"WESZ":60,"WET":0,"WEZ":0,"WFT":720,"WGST":-120,"WGT":-180,"WIB":420,"WIT":540,"WITA":480,"WST":780,"WT":0,"X":-660,"Y":-720,"YAKST":600,"YAKT":600,"YAPT":600,"YEKST":360,"YEKT":360,"Z":0} | ||
TIMEZONE_ABBR_MAP = {"ACDT":630,"ACST":570,"ADT":-180,"AEDT":660,"AEST":600,"AFT":270,"AKDT":-480,"AKST":-540,"ALMT":360,"AMST":-180,"AMT":-240,"ANAST":720,"ANAT":720,"AQTT":300,"ART":-180,"AST":-240,"AWDT":540,"AWST":480,"AZOST":0,"AZOT":-60,"AZST":300,"AZT":240,"BNT":480,"BOT":-240,"BRST":-120,"BRT":-180,"BST":60,"BTT":360,"CAST":480,"CAT":120,"CCT":390,"CDT":-300,"CEST":120,"CET":60,"CHADT":825,"CHAST":765,"CKT":-600,"CLST":-180,"CLT":-240,"COT":-300,"CST":-360,"CVT":-60,"CXT":420,"ChST":600,"DAVT":420,"EASST":-300,"EAST":-360,"EAT":180,"ECT":-300,"EDT":-240,"EEST":180,"EET":120,"EGST":0,"EGT":-60,"EST":-300,"ET":-300,"FJST":780,"FJT":720,"FKST":-180,"FKT":-240,"FNT":-120,"GALT":-360,"GAMT":-540,"GET":240,"GFT":-180,"GILT":720,"GMT":0,"GST":240,"GYT":-240,"HAA":-180,"HAC":-300,"HADT":-540,"HAE":-240,"HAP":-420,"HAR":-360,"HAST":-600,"HAT":-90,"HAY":-480,"HKT":480,"HLV":-210,"HNA":-240,"HNC":-360,"HNE":-300,"HNP":-480,"HNR":-420,"HNT":-150,"HNY":-540,"HOVT":420,"ICT":420,"IDT":180,"IOT":360,"IRDT":270,"IRKST":540,"IRKT":540,"IRST":210,"IST":60,"JST":540,"KGT":360,"KRAST":480,"KRAT":480,"KST":540,"KUYT":240,"LHDT":660,"LHST":630,"LINT":840,"MAGST":720,"MAGT":720,"MART":-510,"MAWT":300,"MDT":-360,"MESZ":120,"MEZ":60,"MHT":720,"MMT":390,"MSD":240,"MSK":240,"MST":-420,"MUT":240,"MVT":300,"MYT":480,"NCT":660,"NDT":-90,"NFT":690,"NOVST":420,"NOVT":360,"NPT":345,"NST":-150,"NUT":-660,"NZDT":780,"NZST":720,"OMSST":420,"OMST":420,"PDT":-420,"PET":-300,"PETST":720,"PETT":720,"PGT":600,"PHOT":780,"PHT":480,"PKT":300,"PMDT":-120,"PMST":-180,"PONT":660,"PST":-480,"PT":-480,"PWT":540,"PYST":-180,"PYT":-240,"RET":240,"SAMT":240,"SAST":120,"SBT":660,"SCT":240,"SGT":480,"SRT":-180,"SST":-660,"TAHT":-600,"TFT":300,"TJT":300,"TKT":780,"TLT":540,"TMT":300,"TVT":720,"ULAT":480,"UTC":0,"UYST":-120,"UYT":-180,"UZT":300,"VET":-210,"VLAST":660,"VLAT":660,"VUT":660,"WAST":120,"WAT":60,"WEST":60,"WESZ":60,"WET":0,"WEZ":0,"WFT":720,"WGST":-120,"WGT":-180,"WIB":420,"WIT":540,"WITA":480,"WST":780,"WT":0,"YAKST":600,"YAKT":600,"YAPT":600,"YEKST":360,"YEKT":360} |
@@ -296,2 +296,45 @@ | ||
var text = "5 May 12:00"; | ||
var results = chrono.parse(text, new Date(2012,7,10)); | ||
ok(results.length == 1, JSON.stringify( results ) ) | ||
var result = results[0]; | ||
if(result){ | ||
ok(result.index == 0, 'Wrong index') | ||
ok(result.text == '5 May 12:00', result.text ) | ||
ok(result.start, JSON.stringify(result.start) ) | ||
ok(result.start.get('year') == 2012, 'Test Result - (Year) ' + JSON.stringify(result.start) ) | ||
ok(result.start.get('month') == 5, 'Test Result - (Month) ' + JSON.stringify(result) ) | ||
ok(result.start.get('day') == 5, 'Test Result - (Day) ' + JSON.stringify(result.start) ) | ||
var resultDate = result.start.date(); | ||
var expectDate = new Date(2012, 5-1, 5, 12, 0); | ||
ok(Math.abs(expectDate.getTime() - resultDate.getTime()) < 100000, 'Test result.startDate ' + resultDate +'/' +expectDate) | ||
} | ||
var text = "7 May 11:00"; | ||
var results = chrono.parse(text, new Date(2012,7,10)); | ||
ok(results.length == 1, JSON.stringify( results ) ) | ||
var result = results[0]; | ||
if(result){ | ||
ok(result.index == 0, 'Wrong index') | ||
ok(result.text == '7 May 11:00', result.text ) | ||
ok(result.start, JSON.stringify(result.start) ) | ||
ok(result.start.get('year') == 2012, 'Test Result - (Year) ' + JSON.stringify(result.start) ) | ||
ok(result.start.get('month') == 5, 'Test Result - (Month) ' + JSON.stringify(result) ) | ||
ok(result.start.get('day') == 7, 'Test Result - (Day) ' + JSON.stringify(result.start) ) | ||
ok(result.start.get('hour') == 11, 'Test Result - (Day) ' + JSON.stringify(result.start) ) | ||
var resultDate = result.start.date(); | ||
var expectDate = new Date(2012, 5-1, 7, 11, 0); | ||
ok(Math.abs(expectDate.getTime() - resultDate.getTime()) < 100000, 'Test result.startDate ' + resultDate +'/' +expectDate) | ||
} | ||
}); | ||
@@ -298,0 +341,0 @@ |
@@ -532,2 +532,40 @@ | ||
test("Test - Timezone extraction", function() { | ||
var text = "friday at 2 pm"; | ||
var result = chrono.parse(text, new Date(2016, 3, 28))[0]; | ||
ok(result.text == text, result.text) | ||
ok(!result.start.isCertain('timezoneOffset'), JSON.stringify(result.start)) | ||
ok(!result.start.get('timezoneOffset'), JSON.stringify(result.start)) | ||
var text = "friday at 2 pm EST"; | ||
var result = chrono.parse(text, new Date(2016, 3, 28))[0]; | ||
ok(result.text == text, result.text) | ||
ok(result.start.isCertain('timezoneOffset'), JSON.stringify(result.start)) | ||
ok(result.start.get('timezoneOffset') === -300, JSON.stringify(result.start)) | ||
var text = "friday at 2 pm est"; | ||
var result = chrono.parse(text, new Date(2016, 3, 28))[0]; | ||
ok(result.text == text, result.text) | ||
ok(result.start.isCertain('timezoneOffset'), JSON.stringify(result.start)) | ||
ok(result.start.get('timezoneOffset') === -300, JSON.stringify(result.start)) | ||
var text = "friday at 2 pm establish ..."; | ||
var result = chrono.parse(text, new Date(2016, 3, 28))[0]; | ||
ok(result.text == 'friday at 2 pm', result.text) | ||
ok(!result.start.isCertain('timezoneOffset'), JSON.stringify(result.start)) | ||
ok(!result.start.get('timezoneOffset'), JSON.stringify(result.start)) | ||
var text = "friday at 2 pm I will do something"; | ||
var result = chrono.parse(text, new Date(2016, 3, 28))[0]; | ||
ok(result.text == 'friday at 2 pm', result.text) | ||
ok(!result.start.isCertain('timezoneOffset'), JSON.stringify(result.start)) | ||
ok(!result.start.get('timezoneOffset'), JSON.stringify(result.start)) | ||
}) | ||
test("Test - Random date + time expression", function() { | ||
@@ -534,0 +572,0 @@ |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
1874905
25551