技术解析

Javascript 一句话获得农历
0
2021-08-13 14:54:24
idczone

今天看到有人说 Intl 这个 ECMAscript 内置对象,就翻了一下,发现可以一句话算农历。

new Date().toLocaleString('zh-CN-u-ca-chinese').replace(/(\d+)年 /, (_,y)=>"甲乙丙丁戊己庚辛壬癸".charAt((y-4)%10) + "子丑寅卯辰巳午未申酉戌亥".charAt((y-4)%12))

大家还有更简单或者更短的办法么。交流一下。


只是年吗?

月 日 也有的

这个方法不错,收藏了。

好像不大行?
new Date().toLocaleString('zh-CN-u-ca-chinese').replace(/(\d+)年 /, (_,y)=>"甲乙丙丁戊己庚辛壬癸".charAt((y-4)%10) + "子丑寅卯辰巳午未申酉戌亥".charAt((y-4)%12))
"2020 年七月 23 下午 8:34:56"
new Date().toLocaleString('zh-CN-u-ca-chinese')
"2020 年七月 23 下午 8:35:21"

new Date().toLocaleString('zh-u-ca-chinese-nu-hanidec')
"二〇二〇年七月二三 下午一〇:五〇:三六"

正则里处理一下空格。估计你本地设置了日期格式。
new Date().toLocaleString('zh-CN-u-ca-chinese').replace(/(\d+)\s*?年 /, (_,y)=>"甲乙丙丁戊己庚辛壬癸".charAt((y-4)%10) + "子丑寅卯辰巳午未申酉戌亥".charAt((y-4)%12))

Safari 为
"三七 /七 /二三 下午一〇:三七:三五"

37 这个我也遇到过。可以把两个 charAt 里的 -4 改成 -1 。。正则再调整一下。蛤蛤蛤蛤

还有这种操作?

其实压根就不用正则的,直接 new Date().toLocaleString('ja-JP-u-ca-chinese')就可以了

哈哈哈哈哈哈 楼主尴尬了

秀丫。收藏了。

你。。。作弊!

ICU 这个工具是个宝
但是这个也需要浏览器支持吧
IE 11 是这样表现的:
new Date().toLocaleString('zh-CN-u-ca-chinese')
"‎2020‎年‎9‎月‎11‎日‎ ‎0‎:‎23‎:‎19"
感觉农历很麻烦的一点在于,它是需要结合天文观测测算的。而 ICU 的推算注定是不准的,因为其基准的时间戳是无法与农历用公式对应的。

长知识了,太秀了

如果楼主是一句话获得农历,那 的就是“半句话获得农历”了

看了你的博客,似乎标准库的工作量还是非常大的

你能算出农历日来?

你这个头像和施瓦辛格的头像好像,果然猛男都是喜欢粉色吗。。

你被奇怪的东西吸引了。。。。

用 fetch 不好吗啊(手动狗头

为什么是「 ja-JP 」呢?这不是日本的意思吗
数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服