今天看到有人说 Intl 这个 ECMAscript 内置对象,就翻了一下,发现可以一句话算农历。
new Date().toLocaleString('zh-CN-u-ca-chinese').replace(/(\d+)年 /, (_,y)=>"甲乙丙丁戊己庚辛壬癸".charAt((y-4)%10) + "子丑寅卯辰巳午未申酉戌亥".charAt((y-4)%12))
大家还有更简单或者更短的办法么。交流一下。
今天看到有人说 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+)\s*?年/, (_,y)=>"甲乙丙丁戊己庚辛壬癸".charAt((y-4)%10) + "子丑寅卯辰巳午未申酉戌亥".charAt((y-4)%12))
感谢 @sarvatathagata 的最简单方法:
new Date().toLocaleString('ja-JP-u-ca-chinese')
我写了个博客稍微解释下这个 toLocaleString() https://blog.est.im/202009/stdout-008
|
honjowSep 10, 2020
1
只是年吗?
|
|
jchencodeSep 10, 2020
3
这个方法不错,收藏了。
|
|
cccccccSep 10, 2020
4
好像不大行?
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" |
|
MutooSep 10, 2020
5
new Date().toLocaleString('zh-u-ca-chinese-nu-hanidec')
"二〇二〇年七月二三 下午一〇:五〇:三六" |
|
6
@ccccccc 正则里处理一下空格。估计你本地设置了日期格式。
new Date().toLocaleString('zh-CN-u-ca-chinese').replace(/(\d+)\s*?年 /, (_,y)=>"甲乙丙丁戊己庚辛壬癸".charAt((y-4)%10) + "子丑寅卯辰巳午未申酉戌亥".charAt((y-4)%12)) |
|
unicloudSep 10, 2020 via iPhone
9
还有这种操作?
|
|
10
@est 其实压根就不用正则的,直接 new Date().toLocaleString('ja-JP-u-ca-chinese')就可以了
|
|
dfourcSep 10, 2020
11
@sarvatathagata #10 哈哈哈哈哈哈 楼主尴尬了
|
|
w3cfedSep 10, 2020
12
@sarvatathagata 秀丫。收藏了。
|
|
13
@sarvatathagata 你。。。作弊!
|
|
baobao1270Sep 11, 2020
14
ICU 这个工具是个宝
但是这个也需要浏览器支持吧 IE 11 是这样表现的: new Date().toLocaleString('zh-CN-u-ca-chinese') "2020年9月11日 0:23:19" 感觉农历很麻烦的一点在于,它是需要结合天文观测测算的。而 ICU 的推算注定是不准的,因为其基准的时间戳是无法与农历用公式对应的。 |
|
x86Sep 11, 2020
15
长知识了,太秀了
|
|
hlwjiaSep 11, 2020
16
如果楼主是一句话获得农历,那 @sarvatathagata 的就是“半句话获得农历”了
|
|
ericguiSep 11, 2020
17
看了你的博客,似乎标准库的工作量还是非常大的
|
|
AmrtaShivaSep 11, 2020 via iPhone
18
你能算出农历日来?
|
|
DoracisSep 11, 2020
19
你这个头像和施瓦辛格的头像好像,果然猛男都是喜欢粉色吗。。
|
|
flowfireSep 11, 2020
21
用 fetch 不好吗啊(手动狗头
|
|
chotowSep 11, 2020
22
为什么是「 ja-JP 」呢?这不是日本的意思吗 😕️
|
|
25
@sarvatathagata 但是相应地丢掉了腊月和正月…… 以及闰月的 “闰” 字变繁体
|
|
hahastudioSep 11, 2020
26
说起来,闰月还是每年通过紫金山天文台定的么
|
|
DsuineGPSep 11, 2020
27
话说 “九月第二周的周五” 这个在 js 里面怎么方便的实现啊
|
|
KouShuiYuSep 11, 2020
28
农历是没有规律的没办法算
|
|
GuidooSep 11, 2020
29
博客的风格挺喜欢的, 有 github 地址吗 嘿嘿
|
|
no1xsyzySep 11, 2020
30
@en20 这里指定了 ca-chinese,或者说等价于在 options 里面填入 {calendar: 'chinese'}
即是指定了采用传统农历 相应地,如果是 ja-JP-u-ca-japanese 则采用令和。不过默认的 era 属性为 narrow,导致令和显示为 `R`,需要手动指定 options 里的 {era: 'long'} 或者 {era: 'short'} |
|
cjc2017Sep 11, 2020
31
涨姿势了
|
|
32
|
|
zhw2590582Sep 11, 2020
34
666
|
|
BalibaboSep 11, 2020
35
有点意思啊这个
|
|
hgjianSep 11, 2020 via Android
36
|
|
zyc63959Sep 11, 2020
37
请教下各位,这个里面节气是怎么用的?
|
|
veveueSep 12, 2020
38
Linux x86_64 不行
|
|
rus4dbSep 12, 2020
41
感谢分享
|
|
gromit1337Sep 12, 2020 via iPhone
42
楼主博客啥模版?想抄
|
|
43
|