我们国家的官方日历是 jalali!Jalali 是一种与公历有数学关系的日历。我想更改 JS 中的 Date() 以返回 jalali 值。为此有很多 lib 或 func,但我不想使用它们。我可以重新定义 Date() 吗?我在哪里可以查看 Date() 源?
问问题
52 次
2 回答
0
不要乱弄你不拥有的物品。您可以创建自己的日期对象,可能称为 jDate(在“jalali date”之后,我认为它与 Intl 对象的“波斯”日历相同)并在那里实现方法。
Intl.DateTimeFormat构造函数返回一个具有formatToParts方法的对象,您可以利用该方法来实现所需的 Date 方法,然后您可以处理下面的标准 Date 对象,但从方法返回 Jalali 值。例如,以英语获取所有当前日期部分:
let f = new Intl.DateTimeFormat('en-GB-u-ca-persian',{
year: 'numeric',
month: 'long',
day: 'numeric',
weekday: 'long',
hour: 'numeric',
minute: 'numeric',
second: 'numeric',
hour12: false,
});
console.log('Current Jalali date: ' + f.format(new Date()));
console.log('The parts:');
f.formatToParts(new Date()).forEach(part => console.log(part.type + ': ' + part.value));
对于某些事情,您必须使用不同的选项多次运行 format 方法,例如获取月份名称和数字,因为两者都由月份选项指定:month: 'long'
名称和month: 'numeric'
数字。
于 2021-07-28T07:01:27.013 回答
0
您可以使用 toLocaleDateString();
let today = new Date().toLocaleDateString('fa-IR');
console.log(today);
fa-IR 适用于波斯-伊朗,但所有 ISO 国家代码都可以在这里找到
您也可以将选项设置为第二个参数,例如:
let options = { year: 'numeric', month: 'long', day: 'numeric' };
new Date().toLocaleDateString('fa-IR', options);
于 2021-07-28T05:24:00.080 回答