Allow international formatted dates in CSV imports

This commit is contained in:
Andris Reinman 2017-02-02 16:47:50 +02:00
parent 1513c761bc
commit 9778c486e9
5 changed files with 27 additions and 15 deletions

View file

@ -514,18 +514,27 @@ module.exports.getRow = (fieldList, values, useDate, showAll, onlyExisting) => {
} else {
value = (value || '').toString().trim();
let parts = value.match(/(\d+)\D+(\d+)(?:\D+(\d+))?/);
if (!parts) {
value = null;
// try international format first YYYY-MM-DD
let parts = value.match(/(\d{4})\D+(\d{2})(?:\D+(\d{2})\b)?/);
if (parts) {
year = Number(parts[1]) || 2000;
month = Number(parts[2]) || 0;
day = Number(parts[3]) || 0;
value = new Date(Date.UTC(year, month - 1, day));
} else {
day = Number(parts[isUs ? 2 : 1]) || 0;
month = Number(parts[isUs ? 1 : 2]) || 0;
year = Number(parts[3]) || 2000;
if (!day || !month) {
parts = value.match(/(\d+)\D+(\d+)(?:\D+(\d+)\b)?/);
if (!parts) {
value = null;
} else {
value = new Date(Date.UTC(year, month - 1, day));
day = Number(parts[isUs ? 2 : 1]) || 0;
month = Number(parts[isUs ? 1 : 2]) || 0;
year = Number(parts[3]) || 2000;
if (!day || !month) {
value = null;
} else {
value = new Date(Date.UTC(year, month - 1, day));
}
}
}
}