bugfixing format date
This commit is contained in:
parent
2a24c92a7a
commit
0a613f9f81
@ -765,9 +765,9 @@ export function abbreviateNumber(number, addDollarSign = false) {
|
|||||||
|
|
||||||
export function formatDate(dateStr) {
|
export function formatDate(dateStr) {
|
||||||
try {
|
try {
|
||||||
// Parse the input date string in New York timezone
|
// Parse the input date string in Berlin timezone
|
||||||
const nyFormatter = new Intl.DateTimeFormat('en-US', {
|
const berlinFormatter = new Intl.DateTimeFormat('en-US', {
|
||||||
timeZone: 'America/New_York',
|
timeZone: 'Europe/Berlin',
|
||||||
year: 'numeric',
|
year: 'numeric',
|
||||||
month: '2-digit',
|
month: '2-digit',
|
||||||
day: '2-digit',
|
day: '2-digit',
|
||||||
@ -777,7 +777,7 @@ export function formatDate(dateStr) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
const parseDate = (date) => {
|
const parseDate = (date) => {
|
||||||
const parts = nyFormatter.formatToParts(date);
|
const parts = berlinFormatter?.formatToParts(date);
|
||||||
const extract = (type) =>
|
const extract = (type) =>
|
||||||
parts.find((p) => p.type === type)?.value.padStart(2, '0');
|
parts.find((p) => p.type === type)?.value.padStart(2, '0');
|
||||||
return new Date(
|
return new Date(
|
||||||
@ -785,18 +785,13 @@ export function formatDate(dateStr) {
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
const nyDateObj = parseDate(new Date(dateStr));
|
const berlinDateObj = parseDate(new Date(dateStr));
|
||||||
const nyCurrentObj = parseDate(new Date());
|
const berlinCurrentObj = parseDate(new Date());
|
||||||
|
|
||||||
// Calculate the time difference in seconds
|
// Calculate the time difference in seconds
|
||||||
const seconds = Math.floor((nyCurrentObj - nyDateObj) / 1000);
|
const seconds = Math.floor((berlinCurrentObj - berlinDateObj) / 1000);
|
||||||
|
|
||||||
// Everything below 12 hours (43,200 seconds) returns "Now"
|
// Define time intervals including seconds so that even differences < 60 are handled
|
||||||
if (seconds < 43200) {
|
|
||||||
return 'Now';
|
|
||||||
}
|
|
||||||
|
|
||||||
// Define time intervals for 12 hours or more
|
|
||||||
const intervals = [
|
const intervals = [
|
||||||
{ unit: 'year', seconds: 31536000 },
|
{ unit: 'year', seconds: 31536000 },
|
||||||
{ unit: 'month', seconds: 2592000 },
|
{ unit: 'month', seconds: 2592000 },
|
||||||
@ -804,6 +799,7 @@ export function formatDate(dateStr) {
|
|||||||
{ unit: 'day', seconds: 86400 },
|
{ unit: 'day', seconds: 86400 },
|
||||||
{ unit: 'hour', seconds: 3600 },
|
{ unit: 'hour', seconds: 3600 },
|
||||||
{ unit: 'minute', seconds: 60 },
|
{ unit: 'minute', seconds: 60 },
|
||||||
|
{ unit: 'second', seconds: 1 },
|
||||||
];
|
];
|
||||||
|
|
||||||
// Determine the appropriate time interval
|
// Determine the appropriate time interval
|
||||||
@ -814,8 +810,8 @@ export function formatDate(dateStr) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fallback (should not be reached due to our threshold)
|
// Fallback in case the difference is 0 seconds
|
||||||
return 'Now';
|
return 'Just now';
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('Error formatting date:', error);
|
console.error('Error formatting date:', error);
|
||||||
return 'Invalid date';
|
return 'Invalid date';
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user