yyyy/MM/dd与yyyy-MM-dd使用new Date().getTime()时间转换不相等?!!

news2025/1/2 5:15:05

起源

该问题发现于日期组件增加国家法定假节假日的禁用,通过pickerOptions属性定义disabledDate方法实现

export default {
  data () {
    return {
      holidayList: [
        '2023-01-01',
        '2023-01-02',
        '2023-01-21',
        '2023-01-22',
        '2023-01-23',
        '2023-01-24',
        '2023-01-25',
        '2023-01-26',
        '2023-01-27',
        '2023-04-05',
        '2023-04-29',
        '2023-04-30',
        '2023-05-01',
        '2023-05-02',
        '2023-05-03',
        '2023-06-22',
        '2023-06-23',
        '2023-06-24',
        '2023-09-29',
        '2023-09-30',
        '2023-10-01',
        '2023-10-02',
        '2023-10-03',
        '2023-10-04',
        '2023-10-05',
        '2023-10-06'
      ],
      pickerOptions: this.handle(),
      value: ''
    }
  },
  methods: {
    handle () {
      const that = this
      return {
        disabledDate (time) {
          console.log(new Date(time), '666')
          if (time==法定节假日) {
            return true
          } else {
            return time.getTime() < Date.now() - 8.64e7
          }
        }
      }
    }
  }
}

原因

在disabledDate 中打印获得时间全部是使用的零时区时间,并且通.toLocaleString()转换之后的时间格式为yyyy/MM/dd 为 RFC 2822 日期格式标准

在这里插入图片描述

而我们一般时间格式化使用国际标准ISO 8601规范日期格式为

YYYY-MM-DDThh:mm:ss[.mmm]TZD

东八区,也就是GMT+8,并且.toLocaleString()转换之后的时间格式为yyyy-MM-dd
在这里插入图片描述
两者之间的差别

  • 当在不指定时区的情况下,RFC 2822 写法会使用 UTC 时间来解析,而ISO 8601写法则当作本地时区处理
  • RFC2822 相对来说写法更加宽松,甚至可以兼容 Mon, 06 Mar 2017 21:22:23 +0000 这样的写法
  • RFC2822 的时区表示用四位数字(+0800),而 ISO 8601 的时区表示用 HH:MM (+08:00)

在这里插入图片描述

所以此时我们通过disabledDate 中的 yyyy/MM/dd格式时间与yyyy-MM-dd格式时间具有8小时的时间差

解决

统一时间到00:00:00

methods: {
    handle () {
      const that = this
      return {
        disabledDate (time) {
          if (that.holidayList.find(d => time.getTime() === new Date(d + ' 00:00:00').getTime())) {
            return true
          } else {
            return time.getTime() < Date.now() - 8.64e7
          }
        }
      }
    }
  }

谁能想到 不同格式化的string日期转Date还有这种操作

参考:前端国际化时间日期概述与业务实践

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

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

相关文章

SQL注入——预编译CASE注入

文章目录 预编译 CASE 注入1. SQL注入漏洞防御2. WEBGOAT SQL注入2.1 WebGoat 8.02.2 Order by 注入2.2.1 构造 when 的条件2.2.2 代码审计 预编译 CASE 注入 预编译 CASE&#xff08;Prepared CASE&#xff09;是一种数据库查询语言&#xff08;如SQL&#xff09;中的控制语句…

Android Studio 的android.jar文件在哪儿

一般在&#xff1a;C:\Users\admin\AppData\Local\Android\Sdk\platforms\android-33下&#xff08;不一定是33&#xff0c;这个得看你Android Studio->app->builde.gradle的targetSdk是多少&#xff09; 怎么找&#xff1a; 1.打开Android Studio 粘贴地址后&#xff0…

【C++】stack queue

stack & queue 一、容器适配器二、deque&#xff08;了解&#xff09;三、stack1. stack 的介绍2. 模拟实现 stack 四、queue1. queue 的使用2. 模拟实现 queue3. priority_queue&#xff08;1&#xff09;priority_queue 的介绍&#xff08;2&#xff09;priority_queue 的…

数字IC笔试千题解--单选题篇(二)

前言 出笔试题汇总&#xff0c;是为了总结秋招可能遇到的问题&#xff0c;做题不是目的&#xff0c;在做题的过程中发现自己的漏洞&#xff0c;巩固基础才是目的。 所有题目结果和解释由笔者给出&#xff0c;答案主观性较强&#xff0c;若有错误欢迎评论区指出&#xff0c;资料…

如何通过Python实现接口自动化的参数关联?

前言 通常在接口自动化中&#xff0c;经常会参数关联的问题&#xff0c;那么什么是参数关联&#xff1f; 参数关联就是上一个接口的返回值会被下一个接口当做参数运用&#xff0c;其中Python中可以实现参数关联的方法有很多种&#xff0c;今天小编给大家介绍下&#xff0c;如…

IC验证| Verilog语法详解之条件语句

Verilog 是一种用于数字逻辑电路设计的硬件描述语言&#xff0c;可以用来进行数字电路的仿真验证、时序分析、逻辑综合。 既是一种行为级&#xff08;可用于电路的功能描述&#xff09;描述语言又是一种结构性&#xff08;可用于元器件及其之间的连接&#xff09;描述语言。 …

RedisTemplate出现\xac\xed\x00\x05t\x00\x0f前缀解决

问题描叙 出现这种乱码前缀的原因是没有进行序列化&#xff0c;因此导致在传输过程出现乱码问题&#xff0c;存到数据库&#xff0c;发现 key,hash key/value 都有 \xAC\xED\x00\x05t\x00 前缀。RedisTemplate类中默认是没有设置序列化的。 解决方法 设置RedisTemplate的序列…

如何快速建立一个专业、高效的宠物医院小程序?

随着社会的发展和科技的进步&#xff0c;人们对于宠物的关注度越来越高&#xff0c;养宠物已经成为了许多人的生活方式。然而&#xff0c;宠物的健康问题也随之而来&#xff0c;宠物医院成为了不可或缺的存在。为了更好地服务于宠物主人&#xff0c;打造一个专属的宠物医院线上…

IntelliJ IDEA 左侧Commit栏不见了

1.点击File->Settings->Version Control->Commit 2.勾选Use non-modal commit interface

关于ElementUI之首页导航与左侧菜单实现

目录 一.Mock 1.1.什么是Mock.js 1.2.特点 1.3.安装与配置 1.3.1. 安装mock.js 1.3.2.引入mock.js 1.4.mockjs使用 1.4.1.定义测试数据文件 1.4.2.mock拦截Ajax请求 1.4.3.界面代码优化 二.总线 2.1.是什么 2.2.前期准备 2.3.配置组件与路由关系 2.3.1. 配置组件 …

Mock.js之Element-ui搭建首页导航与左侧菜单

&#x1f3ac; 艳艳耶✌️&#xff1a;个人主页 &#x1f525; 个人专栏 &#xff1a;《Spring与Mybatis集成整合》《springMvc使用》 ⛺️ 生活的理想&#xff0c;为了不断更新自己 ! 1、Mock.js的使用 1.1.什么是Mock.js Mock.js是一个模拟数据的生成器&#xff0c;用来帮助前…

希尔排序代码及时间空间复杂度

希尔排序&#xff08;Shell Sort&#xff09;是一种插入排序的改进算法&#xff0c;它通过将数据分成多个小组来排序&#xff0c;然后逐渐减小这些小组的间隔&#xff0c;直到最后一次使用标准的插入排序算法。希尔排序的时间复杂度取决于使用的间隔序列&#xff0c;通常为 O(n…

Vulnhub-driftingbules:5 靶机复现完整过程

记录对driftingbules:5 靶机的复现过程 kali的IP地址&#xff1a;192.168.200.14 靶机IP地址&#xff1a;192.168.200.60 一、信息收集 1.对利用nmap目标靶机进行扫描 由于arp-scan属于轻量级扫描&#xff0c;在此直接使用nmap进行对目标靶机扫描开放端口 nmap -A -p 1-65…

从SmartPay dll学到的内容 宏定义 单件模式 迭代 日志记录函数进入与出来

日志记录函数进入与出来&#xff1a;利用C的反初始化来记录退出 函数运行记时、调用次数统计等 宏定义 配置里的宏 WIN32;NDEBUG;_WINDOWS;_USRDLL;SMARTPAY_PGLDLL_192787_EXPORTS;ESLOG_RELEASE;HAVE_STRUCT_TIMESPEC;%(PreprocessorDefinitions)减少代码耦合 关闭日志等 …

国内音视频开发的前景怎么样?

国内音视频开发的前景怎么样? 本人就是音视频开发&#xff0c;谈一下我的观点。 目前干我们这一行的年纪都比较大&#xff0c;我自己工作五年就是很年轻的了。年会上老板说除了音视频中心的大家都是比较年轻的。。。 有些也是过了35岁了&#xff0c;四十的都有。是不是觉得这…

Unity(四) 基于关键帧的动画与骨骼动画

Unity中有两种类型的动画&#xff1a;基于关键帧的动画和骨骼动画 基于关键帧的动画是最常见的动画形式&#xff0c;也称为帧动画。它将每一帧的动画存储为一个离散的关键帧&#xff0c;然后通过计算每一帧之间的差异来创建动画。这种类型的动画适用于不需要太多交互或程序控制…

【network】丢包网络情况记录

目录 2023-09-25 09:20 2023-09-25 11:23 接口流量 2023-09-25 09:20 2023-09-25 11:23 接口流量

使用自功率谱、互功率谱估计滤波器幅频特性

这段时间终于对工程中的随机信号的一般处理方式有点头绪了&#xff0c;功率谱密度估计是十分重要的方式之一&#xff0c;仍需继续深入细化相关内容。 示例&#xff1a;使用自功率谱、互功率谱估计滤波器幅频特性&#xff0c;自己实现 & Matlab自带函数实现。 clc;clear;cl…

BUUCTF [BJDCTF2020]EasySearch 1

“.swp” 后缀通常用于表示 Vim&#xff08;一种文本编辑器&#xff09;的交换文件。Vim 是一个强大的文本编辑器&#xff0c;它在编辑文件时会创建交换文件以确保文件内容的安全性。 审阅 访问 index.php.swp 得到源码 <?phpob_start();function get_hash(){$chars ABC…

【PDF】pdf 学习之路

PDF 文件格式解析 https://www.cnblogs.com/theyangfan/p/17074647.html 权威的文档&#xff1a; 推荐第一个连接&#xff1a; PDF Explained &#xff08;译作《PDF 解析》&#xff09; | PDF-Explained《PDF 解析》https://zxyle.github.io/PDF-Explained/ https://zxyle…