Javascript 一句话获得农历

2020-09-10 18:51:43 +08:00
 est

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

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

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

7428 次点击
所在节点    JavaScript
43 条回复
flowfire
2020-09-11 09:03:25 +08:00
用 fetch 不好吗啊(手动狗头
chotow
2020-09-11 09:27:20 +08:00
为什么是「 ja-JP 」呢?这不是日本的意思吗 😕️
LeemengG
2020-09-11 09:46:16 +08:00
@chotow 估计是日本人现在某些场景也提供 农历 的选项
en20
2020-09-11 09:54:57 +08:00
@LeemengG 日本不是用 令和 x 年 吗
no1xsyzy
2020-09-11 10:01:28 +08:00
@sarvatathagata 但是相应地丢掉了腊月和正月…… 以及闰月的 “闰” 字变繁体
hahastudio
2020-09-11 10:06:05 +08:00
说起来,闰月还是每年通过紫金山天文台定的么
DsuineGP
2020-09-11 10:12:41 +08:00
话说 “九月第二周的周五” 这个在 js 里面怎么方便的实现啊
KouShuiYu
2020-09-11 10:13:21 +08:00
农历是没有规律的没办法算
Guidoo
2020-09-11 10:33:50 +08:00
博客的风格挺喜欢的, 有 github 地址吗 嘿嘿
no1xsyzy
2020-09-11 10:36:11 +08:00
@en20 这里指定了 ca-chinese,或者说等价于在 options 里面填入 {calendar: 'chinese'}
即是指定了采用传统农历

相应地,如果是 ja-JP-u-ca-japanese 则采用令和。不过默认的 era 属性为 narrow,导致令和显示为 `R`,需要手动指定 options 里的 {era: 'long'} 或者 {era: 'short'}
cjc2017
2020-09-11 10:46:29 +08:00
涨姿势了
est
2020-09-11 10:59:08 +08:00
est
2020-09-11 11:02:17 +08:00
@DsuineGP 找个日期库什么的吧。。这个帮不了。
zhw2590582
2020-09-11 11:09:26 +08:00
666
xutao881
2020-09-11 15:30:53 +08:00
有点意思啊这个
hgjian
2020-09-11 16:20:19 +08:00
推荐给大家一个库:
https://blog.jjonline.cn/userInterFace/173.html
我的网站顶部用的是这个:
https://www.bas369.com
zyc63959
2020-09-11 23:26:59 +08:00
请教下各位,这个里面节气是怎么用的?
veveue
2020-09-12 13:26:43 +08:00
Linux x86_64 不行
est
2020-09-12 16:38:16 +08:00
@veveue 兄弟这个是啥浏览器?版本要新一点的才支持。nodejs 的 v8 版本也太低不支持的。
est
2020-09-12 16:38:49 +08:00
@zyc63959 节气可以在 icu 里调出来,js 的日期对象估计调不出来

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/705897

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX