Fix timestamp offset parsing
This commit is contained in:
parent
95a7cc336e
commit
4e3fdc3c29
@ -43,6 +43,7 @@ export const convertExifToFormData = (
|
||||
) => getCompatibleExifValue(key, exif, exifr, exifrSpecificKey);
|
||||
|
||||
const dateTimeOriginal = getExifValue('DateTimeOriginal');
|
||||
const offset = getOffsetFromExif(exif, exifr);
|
||||
|
||||
return {
|
||||
aspectRatio: getAspectRatioFromExif(exif).toString(),
|
||||
@ -74,7 +75,7 @@ export const convertExifToFormData = (
|
||||
...dateTimeOriginal && {
|
||||
takenAt: convertTimestampWithOffsetToPostgresString(
|
||||
dateTimeOriginal,
|
||||
getOffsetFromExif(exif, exifr),
|
||||
offset,
|
||||
),
|
||||
takenAtNaive:
|
||||
convertTimestampToNaivePostgresString(dateTimeOriginal),
|
||||
|
||||
@ -101,11 +101,8 @@ const dateFromTimestamp = (timestamp?: AmbiguousTimestamp): Date => {
|
||||
? /.+Z/i.test(timestamp)
|
||||
? new Date(timestamp)
|
||||
: new Date(`${timestamp}Z`)
|
||||
// Check for date last to avoid destabilizing status quo
|
||||
: isDate(timestamp)
|
||||
? timestamp
|
||||
: undefined;
|
||||
return date && !isNaN(date.getTime()) ? date : new Date();
|
||||
: timestamp;
|
||||
return isDate(date) ? date : new Date();
|
||||
};
|
||||
|
||||
const createNaiveDateWithOffset = (
|
||||
|
||||
@ -1,7 +1,5 @@
|
||||
import { OrientationTypes, type ExifData, ExifTags } from 'ts-exif-parser';
|
||||
|
||||
const OFFSET_REGEX = /[+-]\d\d:\d\d/;
|
||||
|
||||
export const getCompatibleExifValue = (
|
||||
key: keyof ExifTags,
|
||||
exif: ExifData,
|
||||
@ -11,7 +9,7 @@ export const getCompatibleExifValue = (
|
||||
|
||||
const isValueOffset = (value: any) =>
|
||||
typeof value === 'string' &&
|
||||
OFFSET_REGEX.test(value);
|
||||
/^[+-]\d\d:\d\d$/.test(value);
|
||||
|
||||
export const getOffsetFromExif = (
|
||||
exif: ExifData,
|
||||
|
||||
Loading…
Reference in New Issue
Block a user