chrono-node
Advanced tools
Comparing version 1.0.2 to 1.0.3
@@ -10,3 +10,3 @@ { | ||
"license": "MIT", | ||
"version": "1.0.2", | ||
"version": "1.0.3", | ||
"directories": { | ||
@@ -19,2 +19,4 @@ "source": "./src", | ||
"browserify": "^6.3.3", | ||
"coveralls": "^2.11.2", | ||
"istanbul": "^0.3.5", | ||
"karma": "~0.10.4", | ||
@@ -26,5 +28,3 @@ "karma-browserify": "^1.0.0", | ||
"minifyify": "^4.4.0", | ||
"qunit": "^0.7.5", | ||
"qunitjs": "~1.14.0", | ||
"uglify-js": "~2.4.1", | ||
"qunit": "git://github.com/wanasit/node-qunit.git", | ||
"watchify": "^2.1.1" | ||
@@ -38,3 +38,4 @@ }, | ||
"karma": "karma start", | ||
"test": "qunit -c chrono:src/chrono.js -t test-qunit/*.js" | ||
"test": "qunit -c chrono:src/chrono.js -p src -t test-qunit/*.js --cov", | ||
"coveralls": "npm run test && cat coverage/lcov.info | coveralls" | ||
}, | ||
@@ -41,0 +42,0 @@ "dependencies": { |
Chrono | ||
====== | ||
A natural language date parser in Javascript, designed for extracting date information from any given text. (Java version is also available [here](https://github.com/wanasit/chrono-java)) | ||
[![Build Status](https://travis-ci.org/wanasit/chrono.svg?branch=master)](https://travis-ci.org/wanasit/chrono) | ||
[![Coverage Status](https://img.shields.io/coveralls/wanasit/chrono.svg)](https://coveralls.io/r/wanasit/chrono?branch=master) | ||
Chrono supports most date and time formats, such as : | ||
@@ -7,0 +9,0 @@ |
@@ -18,3 +18,3 @@ /* | ||
+ '([0-9]{1,2}):([0-9]{1,2})' // hh:mm | ||
+ '(?::([0-9]{1,2})(?:\\.\\d{1,4})?)?' // :ss.s | ||
+ '(?::([0-9]{1,2})(?:\\.(\\d{1,4}))?)?' // :ss.s | ||
+ '(?:Z|([+-]\\d{2}):?(\\d{2})?)' // TZD (Z or ±hh:mm or ±hhmm or ±hh) | ||
@@ -30,4 +30,5 @@ + ')?' //.. | ||
var SECOND_NUMBER_GROUP = 7; | ||
var TZD_HOUR_OFFSET_GROUP = 8; | ||
var TZD_MINUTE_OFFSET_GROUP = 9; | ||
var MILLISECOND_NUMBER_GROUP = 8; | ||
var TZD_HOUR_OFFSET_GROUP = 9; | ||
var TZD_MINUTE_OFFSET_GROUP = 10; | ||
@@ -72,2 +73,8 @@ exports.Parser = function ENISOFormatParser(){ | ||
if (match[MILLISECOND_NUMBER_GROUP] != null) { | ||
result.start.assign('millisecond', | ||
parseInt(match[MILLISECOND_NUMBER_GROUP])); | ||
} | ||
if (match[TZD_HOUR_OFFSET_GROUP] == null) { | ||
@@ -74,0 +81,0 @@ |
@@ -74,5 +74,5 @@ /* | ||
if (match[ERA_GROUP] == '平成') { | ||
year += 1989; | ||
year += 1988; | ||
} else if (match[ERA_GROUP] == '昭和') { | ||
year += 1926; | ||
year += 1925; | ||
} | ||
@@ -79,0 +79,0 @@ |
@@ -12,3 +12,3 @@ /* | ||
if (result.text.replace(' ','').match(/^\d*\.\d*$/)) { | ||
if (result.text.replace(' ','').match(/^\d*(\.\d*)?$/)) { | ||
return false; | ||
@@ -15,0 +15,0 @@ } |
@@ -48,2 +48,3 @@ var moment = require('moment'); | ||
this.imply('second', 0); | ||
this.imply('millisecond', 0); | ||
} | ||
@@ -87,3 +88,4 @@ | ||
dateMoment.set('second', this.get('second')); | ||
dateMoment.set('millisecond', this.get('millisecond')); | ||
// Javascript Date Object return minus timezone offset | ||
@@ -90,0 +92,0 @@ var currentTimezoneOffset = -new Date().getTimezoneOffset(); |
@@ -24,2 +24,4 @@ | ||
ok(result.start.isCertain('minute')) | ||
ok(!result.start.isCertain('second')) | ||
ok(!result.start.isCertain('millisecond')) | ||
@@ -43,4 +45,7 @@ var resultDate = result.start.date(); | ||
ok(result.start.get('minute') == 10, 'Test Result - (Day) ' + JSON.stringify(result.start) ) | ||
ok(!result.start.isCertain('second')) | ||
ok(!result.start.isCertain('millisecond')) | ||
var resultDate = result.start.date(); | ||
var resultDate = result.start.date(); | ||
var expectDate = new Date(2012, 7, 10, 20, 10); | ||
@@ -62,4 +67,7 @@ ok(Math.abs(expectDate.getTime() - resultDate.getTime()) < 100000, 'Test result.startDate ' + resultDate +'/' +expectDate) | ||
ok(result.start.get('minute') == 30, 'Test Result - (Day) ' + JSON.stringify(result.start) ) | ||
ok(!result.start.isCertain('second')) | ||
ok(!result.start.isCertain('millisecond')) | ||
var resultDate = result.start.date(); | ||
var resultDate = result.start.date(); | ||
var expectDate = new Date(2012, 7, 10, 12, 30); | ||
@@ -112,2 +120,4 @@ ok(Math.abs(expectDate.getTime() - resultDate.getTime()) < 100000, 'Test result.startDate ' + resultDate +'/' +expectDate) | ||
ok(result.start.isCertain('minute')) | ||
ok(!result.start.isCertain('second')) | ||
ok(!result.start.isCertain('millisecond')) | ||
@@ -127,2 +137,4 @@ var resultDate = result.start.date(); | ||
ok(result.end.isCertain('minute')) | ||
ok(!result.end.isCertain('second')) | ||
ok(!result.end.isCertain('millisecond')) | ||
@@ -153,5 +165,5 @@ var resultDate = result.end.date(); | ||
ok(result.end, JSON.stringify(result.start) ) | ||
ok(result.end.get('hour') == 23, 'Test Result - (Day) ' + JSON.stringify(result.start) ) | ||
ok(result.end.get('minute') == 0, 'Test Result - (Day) ' + JSON.stringify(result.start) ) | ||
ok(result.end.get('meridiem') == 1, 'Test Result - (Day) ' + JSON.stringify(result.start)) | ||
ok(result.end.get('hour') == 23, 'Test Result - (Day) ' + JSON.stringify(result.end) ) | ||
ok(result.end.get('minute') == 0, 'Test Result - (Day) ' + JSON.stringify(result.end) ) | ||
ok(result.end.get('meridiem') == 1, 'Test Result - (Day) ' + JSON.stringify(result.end) ) | ||
@@ -196,2 +208,5 @@ var resultDate = result.end.date(); | ||
ok(result.start.get('minute') == 0, 'Test Result - (minute) ' + JSON.stringify(result.start) ) | ||
ok(result.start.get('second') == 0, 'Test Result - (second) ' + JSON.stringify(result.start) ) | ||
ok(result.start.get('millisecond') == 0, 'Test Result - (millisecond) ' + JSON.stringify(result.start) ) | ||
ok(!result.start.isCertain('millisecond')) | ||
@@ -217,3 +232,5 @@ var resultDate = result.start.date(); | ||
ok(result.start.get('minute') == 12, 'Test Result - (minute) ' + JSON.stringify(result.start) ) | ||
ok(result.start.get('second') == 59, 'Test Result - (minute) ' + JSON.stringify(result.start) ) | ||
ok(result.start.get('second') == 59, 'Test Result - (second) ' + JSON.stringify(result.start) ) | ||
ok(result.start.get('millisecond') == 0, 'Test Result - (millisecond) ' + JSON.stringify(result.start) ) | ||
ok(!result.start.isCertain('millisecond')) | ||
@@ -239,3 +256,6 @@ var resultDate = result.start.date(); | ||
ok(result.start.get('minute') == 0, 'Test Result - (minute) ' + JSON.stringify(result.start) ) | ||
ok(result.start.get('second') == 0, 'Test Result - (second) ' + JSON.stringify(result.start) ) | ||
ok(result.start.get('millisecond') == 0, 'Test Result - (millisecond) ' + JSON.stringify(result.start) ) | ||
ok(result.start.get('meridiem') == 0, 'Test Result - (meridiem) ' + JSON.stringify(result.start) ) | ||
ok(!result.start.isCertain('millisecond')) | ||
@@ -247,8 +267,11 @@ var resultDate = result.start.date(); | ||
ok(result.end.get('year') == 2014, 'Test Result - (Year) ' + JSON.stringify(result.start) ) | ||
ok(result.end.get('month') == 4, 'Test Result - (Month) ' + JSON.stringify(result.start) ) | ||
ok(result.end.get('day') == 18, 'Test Result - (Day) ' + JSON.stringify(result.start) ) | ||
ok(result.end.get('hour') == 8, 'Test Result - (Hour) ' + JSON.stringify(result.start) ) | ||
ok(result.end.get('minute') == 0, 'Test Result - (minute) ' + JSON.stringify(result.start) ) | ||
ok(result.end.get('meridiem') == 0, 'Test Result - (meridiem) ' + JSON.stringify(result.start) ) | ||
ok(result.end.get('year') == 2014, 'Test Result - (Year) ' + JSON.stringify(result.end) ) | ||
ok(result.end.get('month') == 4, 'Test Result - (Month) ' + JSON.stringify(result.end) ) | ||
ok(result.end.get('day') == 18, 'Test Result - (Day) ' + JSON.stringify(result.end) ) | ||
ok(result.end.get('hour') == 8, 'Test Result - (Hour) ' + JSON.stringify(result.end) ) | ||
ok(result.end.get('minute') == 0, 'Test Result - (minute) ' + JSON.stringify(result.end) ) | ||
ok(result.end.get('second') == 0, 'Test Result - (second) ' + JSON.stringify(result.end) ) | ||
ok(result.end.get('millisecond') == 0, 'Test Result - (millisecond) ' + JSON.stringify(result.end) ) | ||
ok(result.end.get('meridiem') == 0, 'Test Result - (meridiem) ' + JSON.stringify(result.end) ) | ||
ok(!result.end.isCertain('millisecond')) | ||
@@ -255,0 +278,0 @@ var resultDate = result.end.date(); |
@@ -35,3 +35,3 @@ | ||
ok(result.text == text, result.text); | ||
ok(Math.abs(expect.getTime() - result.start.date().getTime()) <= 1000) | ||
ok(Math.abs(expect.getTime() - result.start.date().getTime()) == 0) | ||
}); | ||
@@ -97,2 +97,6 @@ | ||
var text = ' 3' | ||
var results = chrono.parse(text); | ||
ok(results.length == 0, JSON.stringify(results) ) | ||
var text = ' 0.5 ' | ||
@@ -99,0 +103,0 @@ var results = chrono.parse(text); |
@@ -43,2 +43,61 @@ | ||
} | ||
var text = "主な株主(9月3日現在)"; | ||
var results = chrono.parse(text, new Date(2012,8-1,10)); | ||
ok(results.length == 1, JSON.stringify( results ) ) | ||
var result = results[0]; | ||
if (result) { | ||
ok(result.index == 5, 'Wrong index') | ||
ok(result.text == '9月3日', 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') == 9, 'Test Result - (Month) ' + JSON.stringify(result.start) ) | ||
ok(result.start.get('day') == 3, 'Test Result - (Day) ' + JSON.stringify(result.start) ) | ||
var resultDate = result.start.date(); | ||
var expectDate = new Date(2012, 9-1, 3, 12); | ||
ok(Math.abs(expectDate.getTime() - resultDate.getTime()) < 100000, 'Test result.startDate ' + resultDate +'/' +expectDate) | ||
} | ||
var text = "主な株主(平成26年12月29日)"; | ||
var results = chrono.parse(text, new Date(2012,8-1,10)); | ||
ok(results.length == 1, JSON.stringify( results ) ) | ||
var result = results[0]; | ||
if (result) { | ||
ok(result.index == 5, 'Wrong index') | ||
ok(result.text == '平成26年12月29日', result.text ) | ||
ok(result.start, JSON.stringify(result.start) ) | ||
ok(result.start.get('year') == 2014, 'Test Result - (Year) ' + JSON.stringify(result.start) ) | ||
ok(result.start.get('month') == 12, 'Test Result - (Month) ' + JSON.stringify(result.start) ) | ||
ok(result.start.get('day') == 29, 'Test Result - (Day) ' + JSON.stringify(result.start) ) | ||
var resultDate = result.start.date(); | ||
var expectDate = new Date(2014, 12-1, 29, 12); | ||
ok(Math.abs(expectDate.getTime() - resultDate.getTime()) < 100000, 'Test result.startDate ' + resultDate +'/' +expectDate) | ||
} | ||
var text = "主な株主(昭和64年1月7日)"; | ||
var results = chrono.parse(text, new Date(2012,8-1,10)); | ||
ok(results.length == 1, JSON.stringify( results ) ) | ||
var result = results[0]; | ||
if (result) { | ||
ok(result.index == 5, 'Wrong index') | ||
ok(result.text == '昭和64年1月7日', result.text ) | ||
ok(result.start, JSON.stringify(result.start) ) | ||
ok(result.start.get('year') == 1989, 'Test Result - (Year) ' + JSON.stringify(result.start) ) | ||
ok(result.start.get('month') == 1, 'Test Result - (Month) ' + JSON.stringify(result.start) ) | ||
ok(result.start.get('day') == 7, 'Test Result - (Day) ' + JSON.stringify(result.start) ) | ||
var resultDate = result.start.date(); | ||
var expectDate = new Date(1989, 1-1, 7, 12); | ||
ok(Math.abs(expectDate.getTime() - resultDate.getTime()) < 100000, 'Test result.startDate ' + resultDate +'/' +expectDate) | ||
} | ||
}); | ||
@@ -45,0 +104,0 @@ |
Sorry, the diff of this file is not supported yet
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
1996403
96
22014
180