js获取某一时间到现在的总时间以及svg图标统一管理方法的封装

news2025/4/17 7:21:30

目录

js获取某一时间到现在的总时间方法封装

一、需求

二、方法

三、使用

 js封装一个svg图标管理方法

一、需求

二、实现

三、使用


js获取某一时间到现在的总时间方法封装

一、需求

        在做一些信息展示的时候,我们需要展示各种时间,有时是准确的创建时间,有时则是创建到现在的时间,所以就需要进行一些计算。因此我的这个项目中大佬写了一个方法计算出大概的时间。

二、方法

  fetchdayTime(date) {
    const second = Date.parse(new Date()) - new Date(date).getTime();
    // 计算出相差天数
    const days = Math.floor(second / (24 * 3600 * 1000));
    // 计算出小时数

    const leave1 = second % (24 * 3600 * 1000); // 计算天数后剩余的毫秒数
    const hours = Math.floor(leave1 / (3600 * 1000));
    // 计算相差分钟数
    const leave2 = leave1 % (3600 * 1000); // 计算小时数后剩余的毫秒数
    const minutes = Math.floor(leave2 / (60 * 1000));

    // 计算相差秒数
    const leave3 = leave2 % (60 * 1000); // 计算分钟数后剩余的毫秒数
    const seconds = Math.round(leave3 / 1000);

    let result = '';
    if (days && days > 7) {
      result = moment(date)
        .locale('zh-cn')
        .format('YYYY-MM-DD');
    } else if (days && days >= 1 && days < 7) {
      result += `${formatMessage({ id: 'global.fetchTime.day.ago' }, { num: days })}`;

    } else if (hours && hours >= 1 && hours <= 23) {
      result += `${formatMessage({ id: 'global.fetchTime.hour.ago' }, { num: hours })}`;

    } else if (minutes && minutes >= 1 && minutes <= 59) {
      result += `${formatMessage({ id: 'global.fetchTime.minute.ago' }, { num: minutes })}`;

    } else if (seconds && seconds >= 1 && seconds <= 59) {
      result += `${formatMessage({ id: 'global.fetchTime.second.ago' }, { num: seconds })}`;

    } else {
      result = `${formatMessage({ id: 'global.fetchTime.second.ago.one' })}`;

    }
    return result;
  },

         后面的判断则是根据对应的时间区间,返回对应的字段。因为做了国际化的原因,所以大家并没有看到对应的返回语句。

        国际化翻译对应语句如下。

三、使用

        只需要使用该方法传入对应的天数就可以的到对应的时间了。

 结果:

 js封装一个svg图标管理方法

一、需求

        在项目开发中,难免要使用到大量的svg图标,又因为svg图标代码大多数都是比较长的,如果都放在对应的页面下,那么会造成代码异常混乱,比如这样。

        非常的不美观,所以对于一向有代码洁癖的程序员来说这样的代码是不能忍受的。所以从我现在所写的这个项目的大佬的以前的代码发现了一种方法可以统一管理svg图标。 

二、实现

const pageheaderSvg = {
    getSvg(type, size = 16 , color = 'black') {
        const svg = {
            addSvg: (
                <svg
                    t="1668670915612"
                    class="icon"
                    viewBox="0 0 1024 1024"
                    version="1.1"
                    xmlns="http://www.w3.org/2000/svg"
                    p-id="14252"
                    width={size}
                    height={size}>
                    <path
                        d="M305.6 225.6c-17.6-17.6-43.2-17.6-59.2 0L19.2 460.8c-25.6 30.4-25.6 72 0 97.6l225.6 235.2c8 8 20.8 12.8 30.4 12.8s20.8-4.8 30.4-12.8c17.6-17.6 17.6-43.2 0-59.2L88 512l217.6-225.6c17.6-17.6 17.6-43.2 0-60.8zM1001.6 460.8L774.4 225.6c-17.6-17.6-43.2-17.6-59.2 0s-17.6 43.2 0 59.2L932.8 512 715.2 737.6c-17.6 17.6-17.6 43.2 0 59.2 8 8 17.6 12.8 30.4 12.8 12.8 0 20.8-4.8 30.4-12.8l225.6-235.2c28.8-28.8 28.8-70.4 0-100.8zM612.8 230.4c-20.8-8-46.4 4.8-56 25.6L382.4 742.4c-8 20.8 4.8 46.4 25.6 56 4.8 0 8 4.8 12.8 4.8 17.6 0 33.6-12.8 38.4-30.4l179.2-491.2c8-20.8-4.8-46.4-25.6-51.2z"
                        p-id="14253"
                        fill={color}>
                    </path>
                </svg>
            ),
        }
        return svg[type] || type;
    }
}
export default pageheaderSvg;
传参说明
type就是对应的svg图标,对应下方的 “ addSvg”。
size字体大小
color颜色

         大概也就是这些东西,剩下的就是很常见的语法,导入抛出,对象的方括号取值语法,等等。其实不难,要的就是这种编程思想。这样代码容易维护并且复用简单。

三、使用

        首先引入对应的文件

         然后使用对应的方法,传入对应的参数。

         最后结果展示。

 总结:

        对于我这个编程新手来说,其实这些方法的实现并不难,最重要的是这种编程思想,也许这样会导致你初写代码时,比较耗时长。但是,后面无论是自己维护还是别人维护都会容易的多。大概这就是前人种树后人乘凉吧。当然也非常感谢这个项目的前端大佬。以上两个方法全来自于大佬的代码。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/109594.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

攻防世界-宜兴网信办-inget

题目 访问题目路径 这个题目的意思就是请输入ID&#xff0c;然后尝试绕过&#xff0c;那应该就是SQL注入&#xff0c;但是呢&#xff0c;我是个懒狗&#xff0c;我直接跑sqlmap 先跑数据库名 sqlmap "http://61.147.171.105:51322/?id1" --current-db 爆表 sqlma…

迅为3A5000开发板龙芯自主指令集从里到外100%全国产设计方案

迅为3A5000开发板龙芯处理器自主指令集架构从里到外100%全国产设计方案 iTOP-3A5000 开发板采用全国产龙芯3A5000处理器&#xff0c;基于龙芯自主指令系统&#xff08;LoongArch&#xff09;的LA464微结构&#xff0c;并进一步提升频率&#xff0c;降低功耗&#xff0c;优化性能…

低代码多分支协同开发的建设与实践

作者&#xff1a;黄也(胖丁) 引言 随着低代码的普及&#xff0c;在低代码平台上构建企业级应用逐渐成为生产趋势。同时&#xff0c;随着低代码技术的提升&#xff0c;越来越多的复杂应用在低代码平台中完成。在其研发生命周期中&#xff0c;低代码开发者就会面临多人协作、并…

卷积神经网络 CNN 基础概念

目录 一&#xff1a;卷积神经网络 二&#xff1a;局部感受野 三&#xff1a;卷积层 四&#xff1a;池化层 五&#xff1a;激活层 六&#xff1a;全连接层 七&#xff1a;卷积神经网络算法过程 一&#xff1a;卷积神经网络 卷积神经网络(Convolutional Neural Networks,C…

nor flash调试与使用总结

最近项目中使用到norflash&#xff0c;总结一下学习与使用经验 文章目录一、Flash基本概念存储器介绍与Flash在其中定位---非易失存储器类别中嵌入式领域常见设备Flash的典型分类---NorFlash&#xff08;贵/容量小/读快写慢&#xff09;与NandFlash&#xff08;便宜/容量大/读慢…

Zookeeper 4 Zookeeper JavaAPI 操作 4.9 模拟12306 售票案例

Zookeeper 【黑马程序员Zookeeper视频教程&#xff0c;快速入门zookeeper技术】 文章目录Zookeeper4 Zookeeper JavaAPI 操作4.9 模拟12306 售票案例4.9.1 Curator 实现分布式锁 API4.9.2 分布式锁案例 - 模拟12306 售票4 Zookeeper JavaAPI 操作 4.9 模拟12306 售票案例 4.…

企业经常会问到的软件测试面试题及答案,一定要好好记住

相信对于很多软件测试新手来说&#xff0c;技术项目的面试是十分让人头疼的&#xff0c;生怕没回答得好&#xff0c;就会跟这个offer失之交臂&#xff0c;因此&#xff0c;今天&#xff0c;我以身边朋友面试遇到过的几个问题以及刷过的软件测试题库柠檬班中的压中的题目&#x…

Maven 项目模板

Maven 项目模板 Maven 使用 archetype(原型) 来创建自定义的项目结构&#xff0c;形成 Maven 项目模板。 在前面章节我们学到 Maven 使用下面的命令来快速创建 java 项目&#xff1a; mvn archetype:generate 什么是 archetype&#xff1f; archetype 也就是原型&#xff…

终于有人把性能优化讲清楚了!阿里架构师推荐的Java性能权威指南

Java给大部分人的感觉就是慢&#xff0c;有严重的性能问题。其实程序慢的问题&#xff0c;与语言无关&#xff0c;与Java无关。Java应用的性能优化也是一个老生常谈的话题&#xff0c;但是只要我们深入的了解性能调优方法&#xff0c;走遍天下都不怕&#xff01; 大多数开发人…

mac系统M1pro芯片安装VMware Fusion虚拟机win11操作系统(原创详细版)

VMware22年11月份推出Fusion 13&#xff0c;这是Fusion虚拟软件的最新更新。它允许Mac用户操作虚拟机来运行非macOS操作系统&#xff0c;如Windows 11。 有了Fusion 13&#xff0c;英特尔和苹果芯片Mac用户可以访问Windows 11虚拟机。英特尔Mac提供对Windows 11的全面支持&…

webpack 构建脚手架

前言 1. 构建项目 2. 局部安装 3. webpack.config.js 4. 打包 css 文件 5. 打包 less 文件 6. 打包 vue 文件 7. loader 和 plugin 区别 8. 添加版权的插件 9. html-webpack-plugin 打包 html 的插件 10. 压缩文件 11. webpack-dev-server 搭建本地服务器 前言 本文记录 webpa…

基于鸽群算法改进的DELM预测 -附代码

鸽群算法改进的深度极限学习机DELM的回归预测 文章目录鸽群算法改进的深度极限学习机DELM的回归预测1.ELM原理2.深度极限学习机&#xff08;DELM&#xff09;原理3.鸽群算法4.鸽群算法改进DELM5.实验结果6.参考文献7.Matlab代码1.ELM原理 ELM基础原理请参考&#xff1a;https:…

自学编程的人成千上万,为什么坚持下来的没几个?

在互联网职位薪资水涨船高的现下&#xff0c;越来越多的人都对此跃跃欲试&#xff0c;想要通过学习进入这个新兴的朝阳行业。但或因为现下工作&#xff0c;或因为各种压力&#xff0c;多数人并不能果断投入&#xff0c;自学成了常见的学习方式&#xff01; 但是据数据显示&…

PDF翻译怎么操作?教你几个PDF翻译的技巧

当你在查阅国外资料的时候&#xff0c;有没有发现很多资料都是以PDF格式来呈现的&#xff1f;毕竟&#xff0c;PDF文件方便查阅也不易出现格式混乱的状态。但是&#xff0c;这对于英语基础不好的小伙伴就有一定的影响了&#xff0c;而且如果一字一字去翻译解释&#xff0c;那也…

linux安装php环境

linux安装php环境首先&#xff0c;打开终端并更新系统的软件包列表。运行以下命令然后安装 PHP。运行以下命令安装完成后&#xff0c;可以使用以下命令检查 PHP 的版本&#xff1a;如果您需要使用 PHP 的扩展&#xff0c;可以使用以下命令安装它们&#xff1a;例如&#xff0c;…

[2]MQTT基础知识

MQTT(消息队列遥测传输)是一个客户端服务端架构的发布/订阅模式的消息传输协议。 MQTT协议最初版本是在1999年建立的。该协议的发明人是的Andy Stanford-Clark和Arlen Nipper。 MQTT协议是当今世界上最受欢迎的物联网协议&#xff0c;广泛应用于车联网、智能家居、即时聊天应用…

自学Python学习经验分享

学编程语言有个小秘诀&#xff0c;直接上项目就是干&#xff0c;做完之后你就是Pythoner了。 不要怕没基础&#xff0c;边做边学边查&#xff0c;进步很快的。 因人而异&#xff0c;一周或一个月就能基本入门&#xff0c;当然也需要你百分百的投入。 以前我也觉得收集资料、钻…

一个新工具引发IT巨变:程序员在转行,不懂编程的人却成了程序员

编程一定需要代码吗&#xff1f;我看未必。 科技进步可谓日新月异&#xff0c;无代码开发在近几年&#xff0c;俨然被越来越多的人所熟知。这是一场解放码农的运动&#xff0c;让不懂编程的人也能进行软件开发。 我在发文前&#xff0c;看到了一则信息&#xff0c;更加坚定了…

【MySQL】MySQL初级笔记

MySQL1、初识MySQL(了解)1.1、为什么学习数据库1.2、什么是数据库1.3、什么是DBMS1.4、MySQL简介1.7 连接数据库1.8 基本操作2、操作数据库2.1、结构化查询语句分类2.2、数据库操作2.3、数据值和列类型数值类型字符串类型日期和时间型数值类型NULL值2.4、数据字段属性(重点)UnS…

SpringBoot配置文件的加载顺序

一、引言 如果我们了解SpringBoot配置文件的加载顺序&#xff0c;对项目的开发和部署会有很大的帮助。举个工作中的例子&#xff0c;我们的项目是微服务架构模式&#xff0c;用Nacos做注册中心&#xff08;可以配置每个微服务&#xff09;&#xff0c;所有服务请求需要通过网关…