moment转化时间戳出现Invalid Date的问题及解决

 更新时间:2023年05月12日 17:02:50   作者:Cherry☼  
这篇文章主要介绍了moment转化时间戳出现Invalid Date的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

moment转化时间戳出现Invalid Date

项目用在使用moment转换时间戳的时候出现Invalid Date

通过后端接口发现接口返回的字段是 beginTime: “1612922019029”

在数据传递得过程中类型发生了变化 所以得把字符串用Number()转化下数字类型即可正常显示

// 转换数字类型
beginTime: this.$moment(Number(item.beginTime)).format(
 "YYYY-MM-DD"
),

还有个小问题就是如果某个时间戳为空是时,则会显示1970-01-01

后端返回的字段

所以为了防止显示1970-01-01,所以通过三目运算判断一下

 endTime:
	   item.endTime == ""
	     ? ""
	     : this.$moment(Number(item.endTime)).format("YYYY-MM-DD"),

这样页面上页就不会出现1970-01-01

使用Moment.js处理时间戳转化为时间年月

Moment.js 是一个 JavaScript 日期处理类库(处理时间格式化的npm包),用于解析、检验、操作、以及显示日期,在新公司的项目中,大量使用Moment来处理时间日期,非常方便好用。

Moment.js 中文网:

http://momentjs.cn/

优点

  • 不依赖任何第三方库
  • 支持字符串、Date、时间戳以及数组等格式
  • 可以同时在浏览器和node环境中使用
  • 前后端通用,文档也很详细
  • 方便了日常开发中对时间的操作,提高了开发效率

使用步骤

1:在项目里面安装Moment

cnpm install moment --save

2:在要使用的组件里面引入

import moment from 'moment'; 

3:时间戳如下

{
  "users": [
    {
        "startTime":"1572502840091",
        "endTime":"1572512489920"
    }, {
      "startTime":"1572512489920",
      "endTime":"1572513935374"
    }
]
}

4:代码

这里把时间戳做成了mock数据,使用axios对数据接口进行请求,请求完成之后渲染在前端界面,如果有不理解的地方可以查看专题从零开始学react系列教程。

import React from 'react';
import axios from 'axios';
import moment from 'moment';
class Time extends React.Component {
  //构造函数
  constructor() {
    super();
    //react定义数据
    this.state = {
      list: []
    }
  }
  //请求接口的方法
  getData = () => {
    var api = 'http://localhost:3004/users';
    axios.get(api)
      .then((response) => {
        // handle success
        console.log(response.data);
        //用到this需要注意指向,箭头函数
        this.setState({
          list: response.data
        })
      })
      .catch(function (error) {
        // handle error
        console.log(error);
      });
  }
  render() {
    return (
      <div>
        <h2>时间戳转化为时间</h2>
        <button onClick={this.getData}>获取时间</button>
        <ul>
          {
            this.state.list.map((value, key) => {
              let start = moment(parseInt(value.startTime)).format('YYYY/MM/DD hh:mm:ss');
              let end = moment(parseInt(value.endTime)).format('YYYY/MM/DD hh:mm:ss');
              return (
                <li key={key}>
                  <span>开始时间:{start}</span>
                  <span>结束时间:{end}</span>
                </li>
              )
            })
          }
        </ul>
      </div>
    )
  }
}
export default Time;

5:效果

代码运行如下,获取到了时间年月日了。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • vue-cli中的webpack配置详解

    vue-cli中的webpack配置详解

    本篇文章主要介绍了vue-cli中的webpack配置详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • 详解vue3.2中setup语法糖<script lang="ts" setup>

    详解vue3.2中setup语法糖<script lang="ts" setup>

    Vue 3.2 引入了语法,这是一种稍微不那么冗长的声明组件的方式,下面这篇文章主要介绍了详解vue3.2中setup语法糖<script lang="ts"setup>的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-01-01
  • vue实现表格数据的增删改查

    vue实现表格数据的增删改查

    这篇文章主要为大家详细介绍了vue实现表格数据的增删改查,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • vue自定义tap指令及tap事件的实现

    vue自定义tap指令及tap事件的实现

    Vue提供自定义实现指令的功能, 和组件类似,可以是全局指令和局部指令,这篇文章主要介绍了vue自定义tap指令及tap事件的实现 ,需要的朋友可以参考下
    2018-09-09
  • ElementUI对table的指定列进行合算

    ElementUI对table的指定列进行合算

    本文主要介绍了ElementUI对table的指定列进行合算,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • 基于 Vue 的 Electron 项目搭建过程图文详解

    基于 Vue 的 Electron 项目搭建过程图文详解

    这篇文章主要介绍了基于 Vue 的 Electron 项目搭建过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • vue项目中引入js-base64方式

    vue项目中引入js-base64方式

    这篇文章主要介绍了vue项目中引入js-base64方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • Vue+Express实现登录注销功能的实例代码

    Vue+Express实现登录注销功能的实例代码

    这篇文章主要介绍了Vue+Express实现登录,注销功能,本文通过实例代码讲解的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-05-05
  • vue定义模态框的方法

    vue定义模态框的方法

    这篇文章主要为大家详细介绍了vue定义模态框的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07
  • 一文了解axios和vue的整合操作

    一文了解axios和vue的整合操作

    axios作为Vue生态系统中浓墨重彩的一笔,我学习这个东西也是花了一定的时间的,下面这篇文章主要给大家介绍了关于axios和vue整合操作的相关资料,需要的朋友可以参考下
    2022-04-04

最新评论