Angular 2+中仅用moment-timezone.js能否获取日期时间戳及替代moment.js?
关于moment-timezone与moment.js的依赖问题解答
问题1:在Angular 2或更高版本中,是否仅通过moment-timezone.js就能获取日期和时间戳?
不行哦。moment-timezone本质上是moment.js的扩展库,它本身并不包含moment.js的核心功能——比如创建日期实例、格式化日期、获取时间戳这些基础操作,它的作用只是给moment.js添加时区相关的能力,比如设置特定时区、猜测当前时区、处理时区转换等。
如果只引入moment-timezone.js,你连最基础的moment()创建日期对象的能力都没有,更别说获取日期和时间戳了。
问题2:我的代码如下:time = moment().format('LTS'); date = moment().format('LL'); timezone = moment.tz.guess(); 若仅使用moment-timezone.js,能否不依赖moment.js实现相同功能?
同样不行,咱们拆分来看:
moment().format('LTS')和moment().format('LL'):这两个是moment.js的核心API,负责创建当前时间的moment实例并格式化,这些功能完全来自moment.js,moment-timezone本身不提供。moment.tz.guess():这个确实是moment-timezone提供的时区猜测方法,但它依赖于moment.js的基础环境才能运行——因为moment-timezone是挂载在moment对象上的扩展,没有moment.js的话,连moment.tz这个对象都不存在。
不过有个小补充:如果你使用的是包含moment核心的moment-timezone打包文件(比如moment-timezone-with-data.js这类完整包),那这个文件里已经内置了moment.js的代码,这种情况下你不需要额外引入moment.js也能运行你的代码,但本质上还是依赖了moment的核心逻辑,只是打包在一起了而已。
内容的提问来源于stack exchange,提问作者Virender singh Rathore
相关产品推荐
相关产品推荐

