javascript - 重新定义 Date() javascript
问题描述
我们国家的官方日历是 jalali!Jalali 是一种与公历有数学关系的日历。我想更改 JS 中的 Date() 以返回 jalali 值。为此有很多 lib 或 func,但我不想使用它们。我可以重新定义 Date() 吗?我在哪里可以查看 Date() 源?
解决方案
不要乱弄你不拥有的物品。您可以创建自己的日期对象,可能称为 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'
数字。
推荐阅读
- html - 缩小浏览器窗口或缩放时菜单流出div
- javascript - 为什么莲花笔记中的文档属性正文值为空?
- flutter - 类中的 Flutter 插件构造函数不能应用于给定类型
- javascript - 自定义css开关不运行javascript函数
- python - 显示从数据库到模板的记录
- php - 限制在特定网站上使用的 API
- java - Java中的简单Do-while循环
- java - 如何从文本文件中填充字符串数组
- aws-codepipeline - 通过 CDK 在代码管道中的两个源(S3 和 Github)
- regex - 通过正则表达式对 Elasticsearch 中的 _id 字段运行查询