JavaScript中如何将toLocaleDateString获取的科普特年份转为数字并加4525?
科普特年份转数值后与4525相加的实现方案
问题核心是你获取的科普特年份是字符串类型,直接和数字4525相加会触发字符串拼接逻辑。只要把字符串年份转换成数值类型,就能实现正确的加法运算,以下是几种可行的写法:
方法1:使用Number()转换
Number(new Date().toLocaleDateString('ar-u-nu-arab', { calendar:'coptic', year: "numeric"}).replace('ERA1','')) + 4525
方法2:使用parseInt()转换(推荐,适合整数场景)
parseInt(new Date().toLocaleDateString('ar-u-nu-arab', { calendar:'coptic', year: "numeric"}).replace('ERA1',''), 10) + 4525
注意要传入第二个参数10指定十进制解析,避免因字符串前缀导致的意外解析结果。
方法3:使用一元加号+快速转换
+new Date().toLocaleDateString('ar-u-nu-arab', { calendar:'coptic', year: "numeric"}).replace('ERA1','') + 4525
以上三种方法都能将字符串格式的科普特年份转为数值类型,之后与4525进行的就是正常的数值加法,最终得到正确的埃及年份。
内容的提问来源于stack exchange,提问作者Eyad Farah
相关产品推荐
相关产品推荐

