![](/img/trans.png)
[英]date-fns formatRelative RangeError: Invalid time value when using basic new Date() js function
[英]How to customize date-fns's formatRelative?
此刻,有了calendar ,我可以自定義如何顯示時間,如下所示
moment(dateTime).calendar(null, {
sameDay: '[Today]',
nextDay: '[Tomorrow]',
nextWeek: 'dddd',
lastDay: '[Yesterday]',
lastWeek: '[Last] dddd',
sameElse: 'DD/MM/YYYY'
});
在 date-fns 中,基於formatRelative ,我可以提供options
。
formatRelative(dateTime, Date.now(), options);
但是,閱讀options
文檔后,我仍然無法弄清楚如何自定義它。
任何指南都會有所幫助。 謝謝
盡管 date-fns 不支持進行部分覆蓋的本地方法(尚),但您可以執行以下操作,以進行一些手動調整(此處由德國語言環境顯示):
import { formatRelative } from 'date-fns';
import { de } from 'date-fns/esm/locale';
const formatRelativeLocale = {
lastWeek: '[letzten] dddd [um] LT',
yesterday: '[gestern um] LT',
today: '[heute um] LT',
tomorrow: '[morgen um] LT',
nextWeek: 'dddd [um] LT',
other: 'L LT', // Difference: Add time to the date
};
const locale = {
...de,
formatRelative: token => formatRelativeLocale[token],
};
const text = formatRelative(date, new Date(), { locale });
已接受答案的更新:在date-fns
的最新版本中,格式字符串看起來略有不同(單引號而不是大括號):
import { formatRelative } from 'date-fns';
import { de } from 'date-fns/esm/locale';
const formatRelativeLocale = {
lastWeek: "'letzten' dddd 'um' LT",
yesterday: "'gestern um' LT",
today: "'heute um' LT",
tomorrow: "'morgen um' LT",
nextWeek: "dddd 'um' LT",
other: 'L LT', // Difference: Add time to the date
};
const locale = {
...de,
formatRelative: token => formatRelativeLocale[token],
};
const text = formatRelative(date, new Date(), { locale });
另請參閱date-fns
源中指定的格式字符串示例。
現在有一個名為“formatRelative”的 function 可用。 文檔鏈接: https://date-fns.org/v2.29.3/docs/formatRelative
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.