收藏
回答

小程序获取日期new Date(),居然是昨天的日期,BUG?

问题模块 框架类型 问题类型 终端类型 操作系统 微信版本 基础库版本
框架 小程序 Bug 客户端 Android 6.6.6 1.9.1






/**
* YYYY-MM-dd
*/
function formatDate(date) {
 let year = date.getFullYear()
 let month = date.getMonth() + 1
 let day = date.getDate()
 return [year, month, day].map(formatNumber).join('-');
}
function formatNumber(n) {
 n = n.toString()
 return n[1] ? n : '0' + n
}
//调用
let now = util.formatDate(new Date());

比如今天是2018-06-03,但now结果居然是“2018-06-02”

这种情况在近两个月内,发生过两次了,均是华为手机,且把小程序从“发现”页删除,重新扫描打开就好了

还有一种现象是,出现问题的手机,下午获取的日期就又正确了,早上是错的。

什么原因?难道是代码问题?不可能是new Date()返回的值不对吧?

由于是客户手机,未知基础库版本,小程序后台限制最低是1.9.1

最后一次编辑于  2018-06-06
回答关注问题邀请回答
收藏

7 个回答

  • 意外金喜
    意外金喜
    2018-06-06

    呵呵呵,你明天看,会发现是前天的时间.

    2018-06-06
    赞同 1
    回复 1
    • 小易27
      小易27
      2018-06-06

      照这个逻辑,后天看应该就会发现忍者神龟了

      2018-06-06
      回复
  • 冯恒智
    冯恒智
    2018-06-05

    时区问题,就比如你那个“2018-06-02”不是北京时间,是+0的时间

    2018-06-05
    赞同 1
    回复 6
    • 小易27
      小易27
      2018-06-05

      很有可能,准备找客户确认下,如果是时区问题就好说了

      2018-06-05
      回复
    • 小易27
      小易27
      2018-06-05

      突然想到,如果是时区问题,为什么删除小程序,重新添加就好了?

      2018-06-05
      回复
    • WEN.
      WEN.
      2018-06-05回复小易27

      这个问题以前在PC上遇到过。貌似是浏览器的时区出错了。重启一下就行了。小程序也是用浏览器运行的,估计底层问题一样吧。

      2018-06-05
      1
      回复
    • 小易27
      小易27
      2018-06-05回复WEN.

      最好是用户自己设置错了时区,还好说,如果是微信时区偶尔会错,那就必须得服务器返回时间了

      2018-06-05
      回复
    • logic
      logic
      2018-06-05

      看下是不是相差8小时整

      2018-06-05
      回复
    查看更多(1)
  • 熊猫和猫熊
    熊猫和猫熊
    2018-06-05

    我也写了个时间过滤器,在开发者工具上查看时间处理正确,在手机预览时错误。。。。


    2018-06-05
    赞同
    回复 4
    • 小易27
      小易27
      2018-06-05

      贴个代码看看

      2018-06-05
      回复
    • 熊猫和猫熊
      熊猫和猫熊
      2018-06-05回复熊猫和猫熊


      我的问题已经解决,正如楼下 @人生若只如初见  说的, ios 下不识别 2018-06-05 19:01:10 时间格式,我又过滤了一遍改成 2018/06/05 19:01:10 ,在 ios 下问题解决!


      2018-06-05
      1
      回复
    • Ethan
      Ethan
      2018-06-05回复熊猫和猫熊

      经过测试android和ios均采用2018/06/05 19:01:10这种格式即可做到兼容。

      2018-06-05
      4
      回复
    • 小易27
      小易27
      2018-06-05回复Ethan

      2018-06-05
      回复
  • 小易27
    小易27
    2018-06-05

    趁着这贴子看的人多,再发个最近碰到的奇怪plus+问题贴

    在社区已沉的帖子地址,点这里

    2018-06-05
    赞同
    回复
  • 树下有只猫
    树下有只猫
    2018-06-05

    手机系统时间调过没

    2018-06-05
    赞同
    回复 1
    • 小易27
      小易27
      2018-06-05

      没有,手机系统显示的时间都是对的

      2018-06-05
      回复
  • 不冷不热
    不冷不热
    2018-06-04

    为什么不是后台返回时间?前台的时间可以夏季吧改

    2018-06-04
    赞同
    回复 1
    • 小易27
      小易27
      2018-06-05

      正在考虑中,没想到会遇到这种问题。。。

      2018-06-05
      回复
  • 人生若只如初见
    人生若只如初见
    2018-06-04

    华为 还有这个问题么......

    2018-06-04
    赞同
    回复 5
    • 小易27
      小易27
      2018-06-05

      两个都是华为手机P9,不知道是不是巧合

      2018-06-05
      回复
    • 人生若只如初见
      人生若只如初见
      2018-06-05

      这个问题 我不清楚  不过 你不做ios 的兼容么  ios 不是不识别 2018-06-05 这样格式的么   要改成2018/06/05这样的?

      2018-06-05
      1
      回复
    • 小易27
      小易27
      2018-06-05回复人生若只如初见

      日期是通过new Date()获取,然后程序拼接,只是显示用

      两个月前发现此问题了,就一个用户,没当回事,结果出现了第二个用户。。。

      2018-06-05
      回复
    • 人生若只如初见
      人生若只如初见
      2018-06-05

      上面那个 老兄说的 其实可以考虑  让后台 返回时间  这样 这个问题 应该就不会出现了

      2018-06-05
      1
      回复
    • 熊猫和猫熊
      熊猫和猫熊
      2018-06-05回复人生若只如初见

      还有这种事。。。。。。

      2018-06-05
      回复