use utc for absolute date formatting (#743)
* use utc for date formatting * add seperate utc function and call that instead * swap date format to be a constant * make dateadded use non-utc
This commit is contained in:
parent
660c9744bf
commit
8d8826a9b7
3 changed files with 18 additions and 6 deletions
|
@ -41,7 +41,12 @@ import { useFixedTableHeader } from '/@/renderer/components/virtual-table/hooks/
|
||||||
import { NoteCell } from '/@/renderer/components/virtual-table/cells/note-cell';
|
import { NoteCell } from '/@/renderer/components/virtual-table/cells/note-cell';
|
||||||
import { RowIndexCell } from '/@/renderer/components/virtual-table/cells/row-index-cell';
|
import { RowIndexCell } from '/@/renderer/components/virtual-table/cells/row-index-cell';
|
||||||
import i18n from '/@/i18n/i18n';
|
import i18n from '/@/i18n/i18n';
|
||||||
import { formatDateAbsolute, formatDateRelative, formatSizeString } from '/@/renderer/utils/format';
|
import {
|
||||||
|
formatDateAbsolute,
|
||||||
|
formatDateAbsoluteUTC,
|
||||||
|
formatDateRelative,
|
||||||
|
formatSizeString,
|
||||||
|
} from '/@/renderer/utils/format';
|
||||||
import { useTableChange } from '/@/renderer/hooks/use-song-change';
|
import { useTableChange } from '/@/renderer/hooks/use-song-change';
|
||||||
|
|
||||||
export * from './table-config-dropdown';
|
export * from './table-config-dropdown';
|
||||||
|
@ -253,7 +258,7 @@ const tableColumns: { [key: string]: ColDef } = {
|
||||||
GenericTableHeader(params, { position: 'center' }),
|
GenericTableHeader(params, { position: 'center' }),
|
||||||
headerName: i18n.t('table.column.releaseDate'),
|
headerName: i18n.t('table.column.releaseDate'),
|
||||||
suppressSizeToFit: true,
|
suppressSizeToFit: true,
|
||||||
valueFormatter: (params: ValueFormatterParams) => formatDateAbsolute(params.value),
|
valueFormatter: (params: ValueFormatterParams) => formatDateAbsoluteUTC(params.value),
|
||||||
valueGetter: (params: ValueGetterParams) =>
|
valueGetter: (params: ValueGetterParams) =>
|
||||||
params.data ? params.data.releaseDate : undefined,
|
params.data ? params.data.releaseDate : undefined,
|
||||||
width: 130,
|
width: 130,
|
||||||
|
|
|
@ -10,7 +10,7 @@ import { LibraryHeader, useSetRating } from '/@/renderer/features/shared';
|
||||||
import { useContainerQuery } from '/@/renderer/hooks';
|
import { useContainerQuery } from '/@/renderer/hooks';
|
||||||
import { AppRoute } from '/@/renderer/router/routes';
|
import { AppRoute } from '/@/renderer/router/routes';
|
||||||
import { useCurrentServer } from '/@/renderer/store';
|
import { useCurrentServer } from '/@/renderer/store';
|
||||||
import { formatDateAbsolute, formatDurationString } from '/@/renderer/utils';
|
import { formatDateAbsoluteUTC, formatDurationString } from '/@/renderer/utils';
|
||||||
|
|
||||||
interface AlbumDetailHeaderProps {
|
interface AlbumDetailHeaderProps {
|
||||||
background: {
|
background: {
|
||||||
|
@ -42,7 +42,7 @@ export const AlbumDetailHeader = forwardRef(
|
||||||
id: 'releaseDate',
|
id: 'releaseDate',
|
||||||
value:
|
value:
|
||||||
detailQuery?.data?.releaseDate &&
|
detailQuery?.data?.releaseDate &&
|
||||||
`${releasePrefix} ${formatDateAbsolute(detailQuery?.data?.releaseDate)}`,
|
`${releasePrefix} ${formatDateAbsoluteUTC(detailQuery?.data?.releaseDate)}`,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'songCount',
|
id: 'songCount',
|
||||||
|
@ -62,7 +62,7 @@ export const AlbumDetailHeader = forwardRef(
|
||||||
];
|
];
|
||||||
|
|
||||||
if (originalDifferentFromRelease) {
|
if (originalDifferentFromRelease) {
|
||||||
const formatted = `♫ ${formatDateAbsolute(detailQuery!.data!.originalDate)}`;
|
const formatted = `♫ ${formatDateAbsoluteUTC(detailQuery!.data!.originalDate)}`;
|
||||||
metadataItems.splice(0, 0, {
|
metadataItems.splice(0, 0, {
|
||||||
id: 'originalDate',
|
id: 'originalDate',
|
||||||
value: formatted,
|
value: formatted,
|
||||||
|
|
|
@ -1,13 +1,20 @@
|
||||||
import dayjs from 'dayjs';
|
import dayjs from 'dayjs';
|
||||||
import relativeTime from 'dayjs/plugin/relativeTime';
|
import relativeTime from 'dayjs/plugin/relativeTime';
|
||||||
|
import utc from 'dayjs/plugin/utc';
|
||||||
import formatDuration from 'format-duration';
|
import formatDuration from 'format-duration';
|
||||||
import type { Album, AlbumArtist, Song } from '/@/renderer/api/types';
|
import type { Album, AlbumArtist, Song } from '/@/renderer/api/types';
|
||||||
import { Rating } from '/@/renderer/components/rating';
|
import { Rating } from '/@/renderer/components/rating';
|
||||||
|
|
||||||
dayjs.extend(relativeTime);
|
dayjs.extend(relativeTime);
|
||||||
|
dayjs.extend(utc);
|
||||||
|
|
||||||
|
const DATE_FORMAT = 'MMM D, YYYY';
|
||||||
|
|
||||||
export const formatDateAbsolute = (key: string | null) =>
|
export const formatDateAbsolute = (key: string | null) =>
|
||||||
key ? dayjs(key).format('MMM D, YYYY') : '';
|
key ? dayjs(key).format(DATE_FORMAT) : '';
|
||||||
|
|
||||||
|
export const formatDateAbsoluteUTC = (key: string | null) =>
|
||||||
|
key ? dayjs.utc(key).format(DATE_FORMAT) : '';
|
||||||
|
|
||||||
export const formatDateRelative = (key: string | null) => (key ? dayjs(key).fromNow() : '');
|
export const formatDateRelative = (key: string | null) => (key ? dayjs(key).fromNow() : '');
|
||||||
|
|
||||||
|
|
Reference in a new issue