moment.js插件ios时间格式不兼容问题

2023-09-22 09:33:29

 项目背景

uniapp开发中,考试模块的时间显示,因为每次进入考试都要重新计算开始的时间,因此使用moment.js十分方便,但要注意在ios系统中时间格式问题;

moment.js使用步骤

Moment.js是一个轻量级的JavaScript日期库,可以解析,验证,操作和格式化日期。

1.安装

npm install moment --save 

2.引入

import moment from 'moment'
Vue.prototype.$moment = moment

3.使用

// 1.转换为当前时间的时间戳
var timestamp = moment().unix();
console.log(timestamp); 

// 2.转换为指定日期时间的时间戳
var timestamp1 = moment('2023-09-22 09:34:56').unix();
console.log(timestamp1); 

// 3.转换为指定时区的时间戳
var timestamp2 = moment.tz('2023-09-22 09:34:56', 'America/Los_Angeles').unix();
console.log(timestamp2); 

// 4.计算两个日期之间的时间差
var start = moment('2021-01-01');
var end = moment('2021-12-31');
var diff = end.diff(start); // 计算时间差,以毫秒为单位
console.log(diff);

// 5.将当前日期格式化为指定时间格式 ,此处为常用的年月日时分秒
var formattedDate = moment().format('YYYY-MM-DD HH:mm:ss');
console.log(formattedDate); 

项目例子

将考试计划结束时间获取,再加上当前进入考试的时间,计算出剩余时间戳,然后传值显示;

this.endDataTime = examTimeInfo.examEndTime;
this.startDataTime = this.formatter(new Date(), 'yyyy-MM-dd hh:mm:ss');
// 处理字符串为时间类型
let startTime = Date.parse(this.startDataTime.replace(/-/g, "-"));
let endTime = Date.parse(this.endDataTime.replace(/-/g, "-"));
// 调用moment插件计算时间差(做完这一步timeStamp为时间戳了)
this.timeStamp = this.$moment(endTime).diff(this.$moment(startTime));

this.restTime = this.toHHmmss(this.timeStamp);//赋值时分秒

问题解决

原因是yyy-mm-dd hh:mm:ss 格式ios不识别,ios系统中的时间格式为2023/9/22 而安卓系统这种格式和2023-09-22 都能兼容,所以最后问题解决很简单;在处理时间字符串的那块,把yyy-mm-dd hh:mm:ss 格式转换成 yyy/mm/dd hh:mm:ss,即“-” 改为 “/”。

let startTime = Date.parse(this.startDataTime.replace(/-/g, "/"));
let endTime = Date.parse(this.endDataTime.replace(/-/g, "/"));

更多推荐

JUC第六讲:关键字volatile详解

JUC第六讲:关键字volatile详解相比Sychronized(重量级锁,对系统性能影响较大),volatile提供了另一种解决可见性和有序性问题的方案,本文是JUC第六讲,volatile关键字详解。文章目录JUC第六讲:关键字volatile详解1、带着BAT大厂的面试问题去理解volatile2、volati

安装Anaconda与pytorch,在IDEA中配置环境进行编程

1.官网下载与自己python版本匹配的Anaconda(注意,要想成功安装pytorch,python版本也要对应pytorch的相关版本)Anaconda官网最新版本与自己python版本不否请查找自己版本anaconda版本对应清华大学镜像下载2.安装时勾选添加环境变量或者手动添加(手动添加过程请自行查询)3.检

XMLHttpRequest介绍

目录一、介绍1.创建XMLHttpRequest2.初始化3.发送请求4.获取响应5.响应类型二、发送GET请求示例三、发送POST请求示例四、发送POST请求下载文件示例五、发送POST请求上传文件示例一、介绍1.创建XMLHttpRequestletxhr=newXMLHttpRequest();2.初始化xhr.

大数据知识点之什么是大数据

大数据(bigdata),指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。简单理解就是:那些数据量很大、增长速度很快,数据结构和样式复杂,传统数据库很难存储、处理,传统方法很难分析的信息。大数据是信息资

第七章 查找 六、平衡二叉树

目录一、定义二、最小不平衡子树1、平衡方法2、查找效率三、插入、删除操作平衡二叉树的插入操作:平衡二叉树的删除操作:1、例子1(1)若我们要删除9(2)若我们要删除552、例子2​编辑一、定义平衡二叉树是一种特殊的二叉树,具有如下性质:它是一棵空树,或者它的左右两个子树的高度差的绝对值不超过1,并且其左右两个子树都是平

【@胡锡进】大模型量化分析- 药明康德 603259.SH

我将使用不同的预测方法进行药明康德股票未来3天价格的预测。以下是每种方法的预测方法、详细代码和预测价格(根据提供的数据进行模拟)。SARIMA模型预测:SARIMA(季节性自回归移动平均)模型适用于具有明显季节性的时间序列数据。在这个方法中,我们将使用历史价格数据来训练SARIMA模型,并使用该模型来预测未来3天的价格

如何无损压缩视频?这些技巧你一定用得到

在日常生活中,我们常常会遇到视频文件过大、手机或电脑存储空间不足的情况。这时候,我们就需要将这些视频文件的内存进行压缩,以节省空间。但是,一个一个地压缩视频文件显然是不现实的。那么,如何快速批量压缩视频呢?接下来,本文将为大家介绍一种方法,让您轻松实现批量压缩视频的梦想。首先,我们需要进入“固乔科技”的官网,下载并安装

如何运用API接口获取淘宝1688京东商品数据:从入门到实践

一、引言随着电子商务的飞速发展,许多电商平台提供了API接口,允许开发者获取商品数据,以创建各种创新的应用。本文将详细介绍如何使用API接口获取商品数据,并通过代码示例进行演示。二、API接口概述1.API接口定义API(ApplicationProgrammingInterface)接口是一种协议,允许不同的应用程序

企业电子招投标采购系统——功能模块&功能描述+数字化采购管理 采购招投标

功能描述1、门户管理:所有用户可在门户页面查看所有的公告信息及相关的通知信息。主要板块包含:招标公告、非招标公告、系统通知、政策法规。2、立项管理:企业用户可对需要采购的项目进行立项申请,并提交审批,查看所有的立项信息。主要功能包含:招标立项申请、非招标立项申请、采购立项管理。3、采购项目管理:可对项目采购过程全流程管

PageHelp插件在复杂sql下引起的Having无法识别错误及其解决方案

1:问题出现的场景系统中有一个复杂SQL内嵌套了多个子查询.在改动时需要将SQL的最后一行加上having来做额外的过滤处理.添加完having语句后发现SQL能够正常执行就直接将代码提交到了测试环境.结果在测试环境报错Unknowncolumn‘xxx‘in‘havingclause.2:分析问题1:经过日志获取SQ

vue管理系统列表行按钮过多, 封装更多组件

管理系统table列表操作列,随着按钮的数量越来越多会不断加宽操作列,感觉很不好,对此我封装了这个自动把多余的按钮放到更多菜单下MoreOperation/index.vuemenu组件我这是ant的,可以自行替换为其他框架的<template><divclass="table-operations-group"><t

热文推荐