vant calendar 时区问题

vant v2.5.2

问题场景

利用calendar组件获得选取的日期值。按照官方demo,从confirm事件可获得选择的Date对象。在笔者的需求中,需要获得一个ISO格式的日期字符串的日期部分。根据es6中Date对象的API,toISOString是个对口的方便方法,但执行结果却获得上一天。

分析问题

这种现象,马上想到的是诡异。
通过在控制台上的测试,初步理解的现象。直接new Date()或new Date(year, month, day)得到的是GMT时间,但new Date(‘yyyy-MM-dd’)这种ISO字符串格式的构造方法得到的是本地时间。这决定某些Date直接调用toISOString方法获得的结果是与本地日期不稳定一致的。
再通过源码阅读:
以下代码是calendar的子组件Month的一项属性的声明——days,是可点击的日期格背后对应的数据封装。

days: function days() {
   
  var days = [];
  var year = this.date.getFullYear()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值