vue 通过过滤器格式化时间ios出现NaN的问题

466 阅读1分钟

这是我参与11月更文挑战的第1天,活动详情查看:2021最后一次更文挑战

做项目的时候遇到一个问题,用定义了一个过滤器格式化时间,电脑上看很完美,放到ios上一看傻眼了,显示NaN。

翻找了各种资料之后发现问题是ios上识别不了“2020-09-23”这种时间格式,所以就把“-”,替换成‘/’就解决了

代码如下

<template lang='pug'>
span.time {{ item.evaluateTime | formatter('yyyy-mm-dd') }}
</template>

filters: {
    formatter(time, pattern = "") {
      var format = time.replace(/-/g, "/"); //把“-”,替换成‘/’
      var date = new Date(format),
        y = date.getFullYear(),
        m = (date.getMonth()+1).toString().padStart(2, 0),
        d = date.getDate().toString().padStart(2, 0),
        h = date.getHours().toString().padStart(2, 0),
        mi = date.getMinutes().toString().padStart(2, 0),
        se = date.getSeconds().toString().padStart(2, 0);
      if (pattern == "yyyy-mm-dd") {
        return `${y}.${m}.${d}`;
      } else {
        return `${y}-${m}-${d} ${h}:${mi}:${se}`;
      }
    },
  },