我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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

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:效果

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

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

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

这篇文章主要介绍了moment转化时间戳出现InvalidDate的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2023-05-20

php时间格式转换时间戳的问题怎么解决

本文小编为大家详细介绍“php时间格式转换时间戳的问题怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“php时间格式转换时间戳的问题怎么解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。时间戳是一个整数值
2023-07-05

Python转json时出现中文乱码的问题及解决

这篇文章主要介绍了Python转json时出现中文乱码的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2023-02-08

如何解决python 两个时间戳相减出现结果错误的问题

本篇内容主要讲解“如何解决python 两个时间戳相减出现结果错误的问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何解决python 两个时间戳相减出现结果错误的问题”吧!Python主要
2023-06-09

解决MySQL存储时间出现不一致的问题

用Java在获取了系统时间后,存入MySQL数据库时,当时间的类型为datetime或Timestamp时发现数据库的存储与本地时间不一致。 很大原因是,MySQL设置的时区与你本地时区不一致造成的,解决办法可以修改MySQL的时区配置,这
2022-05-25

Navicat连接MySQL时出现的连接失败问题及解决

目录一、安装mysql的注意事项二、Navicat连接mysql方法一方法二总结一、安装MySQL的注意事项官网下载安装,选择zip包,解压后不用安装只用配置好环境变量Path并在解python压后的文件夹里新建文本文档my.ini,编辑
2023-05-12

如何解决MySQL存储时间出现不一致的问题

小编给大家分享一下如何解决MySQL存储时间出现不一致的问题,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!用Java在获取了系统时间后,存入MySQL数据库时,当时间的类型为datetime或Timestamp时发现数据库
2023-06-14

MySQL中使用delete_at(时间戳)作为逻辑删除标记时如何使用MyBatis-Plus逻辑删除组件插入时间戳,以及如何解决自动填充失效的问题

背景 MySQL中使用delete_at(时间戳)作为逻辑删除标记 在业务中,使用逻辑删除是普遍做法,通常会使用一个名为deleted(0/1)的字段表示删除状态。 但是如果遇到有唯一约束,且可能反复删除和重新插入的表(如用户表,注销用户使
2023-08-30

网站开发中网站空间常出现的三个问题及解决方案是什么

网站开发中网站空间常出现的三个问题及解决方案是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。针对这个问题在这里为大家解决一下。1、网站空间呈现不能访问的状况应当怎么自我
2023-06-07

编程热搜

目录