使用javascript将时间转换成今天,昨天,前天等格式

yizhihongxing

下面是使用 JavaScript 将时间转换成“今天”,“昨天”,“前天”等格式的攻略:

1. 获取时间戳

首先需要获取要转换的时间戳。时间戳是一个整数,表示自1970年1月1日 00:00:00 UTC起经过的毫秒数。可以使用 JavaScript 中的Date对象的getTime()方法获取当前时间的时间戳,如下所示:

const timestamp = new Date().getTime();

2. 转换成日期格式

将时间戳转换成日期格式,可以使用Date对象的toLocaleDateString()方法。该方法将日期对象转换为字符串,格式为本地日期格式。例如:

const date = new Date(timestamp).toLocaleDateString();
console.log(date); // 输出:"2022/3/4"

3. 计算日期差值

接下来,需要计算当前日期与要转换的日期之间的差值,以便确定转换的时间是“今天”,“昨天”,“前天”等。可以使用下列代码段计算日期差值:

const now = new Date().setHours(0, 0, 0, 0); // 当前时间的开始
const compare = new Date(timestamp).setHours(0, 0, 0, 0); // 需要比较的日期的开始
const diff = (now - compare) / 1000 / 60 / 60 / 24; // 计算出两个日期之间的天数差值

4. 根据日期差值转换

使用上述代码段计算出日期差值后,接下来就可以根据差值的不同转换成相应的日期格式了。下面是完整的 JavaScript 代码,其中使用了一个getDateDiff()函数,接受一个时间戳参数,并返回转换后的字符串:

function getDateDiff(timestamp) {
  const now = new Date().setHours(0, 0, 0, 0);
  const compare = new Date(timestamp).setHours(0, 0, 0, 0);
  const diff = (now - compare) / 1000 / 60 / 60 / 24;

  if (diff === 0) {
    return "今天";
  } else if (diff === 1) {
    return "昨天";
  } else if (diff === 2) {
    return "前天";
  } else {
    const date = new Date(timestamp);
    const year = date.getFullYear();
    let month = date.getMonth() + 1;
    month = month < 10 ? "0" + month : month;
    let day = date.getDate();
    day = day < 10 ? "0" + day : day;
    return `${year}/${month}/${day}`;
  }
}

const timestamp1 = 1646488312345;
console.log(getDateDiff(timestamp1)); // 输出:"今天"

const timestamp2 = 1646217600000;
console.log(getDateDiff(timestamp2)); // 输出:"前天"

在上面的代码中,分别使用了两个时间戳作为示例,分别输出了“今天”和“前天”的转换结果。可以根据需要将上述代码与自己的项目结合使用。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用javascript将时间转换成今天,昨天,前天等格式 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • JS div匀速移动动画与变速移动动画代码实例

    关于JS div匀速移动动画与变速移动动画代码实例,我为你提供以下攻略。 1. 匀速移动动画 匀速移动动画的实现方法常见的有两种方式: (1)通过定时器 setInterval() 不断执行移动过程 function moveBySetInterval(ele, speed) { clearInterval(ele.timerId); ele.timerId…

    JavaScript 2023年6月10日
    00
  • javascript RegExp multiline多行匹配影响的^

    JavaScript的正则表达式是一类对文本进行模式匹配的工具,其中RegExp对象是正则表达式的表示。 在正则表达式中,有一些特殊字符和元字符,用于匹配特定的文本,只要掌握这些特殊字符和元字符,就可以更加灵活和高效的处理文本。 其中^是表示字符串的起始位置,在单行模式中表示匹配以目标字符串开始的字符串,而在多行模式中,^匹配每行的起始位置。 multili…

    JavaScript 2023年6月11日
    00
  • JavaScript原型链中函数和对象的理解

    让我来详细讲解一下“JavaScript原型链中函数和对象的理解”的完整攻略。 理解JavaScript中的对象 在JavaScript中,对象是拥有属性的数据结构,一般用来表示现实中的实体或概念。例如,一个人可以当作一个对象,姓名、年龄、性别等属性则是这个对象的属性。JavaScript中的对象是由一些键值对组成的,每个键值对称之为一个属性,其中的键则称之…

    JavaScript 2023年5月27日
    00
  • JavaScript中split() 使用方法汇总

    JavaScript中的split()方法是字符串对象中常用的方法之一,它可以根据指定的分隔符将一个字符串拆分成数组。这个方法在数据处理、字符串操作、数据分割等场景中非常实用。本文将对split()方法进行详细的讲解,希望能对读者能有所帮助。 split()方法的语法和参数 split()方法的语法如下: str.split(separator, limit…

    JavaScript 2023年5月28日
    00
  • 如何使Chrome控制台支持多行js模式——意外发现

    下面是讲解“如何使Chrome控制台支持多行js模式——意外发现”的完整攻略: 1. 问题描述 当我们在Chrome控制台输入多行的JavaScript代码时,按下回车键后会将当前行代码执行。如果我们输入多行代码,需要将所有输入的代码都复制到单行去将它们一起执行。这不仅耗时,操作起来也不太方便。那么有没有办法支持多行JavaScript模式呢? 2. 解决方…

    JavaScript 2023年6月11日
    00
  • Javascript Date setMinutes() 方法

    JavaScript 中的 setMinutes() 方法用于设置日期对象的分钟部分。在本教程中,我们将详细介绍 setMinutes() 方法的使用方法。 setMinutes() 方法基本语法如下: date.setMinutes(minValue, [secValue], [msValue]) 其中,minValue 是设置的分钟值,必须是一个介于 0…

    JavaScript 2023年5月11日
    00
  • JSP request.setAttribute()详解及实例

    我可以为您提供JSP request.setAttribute()的详细攻略。 什么是request.setAttribute()? 在JSP中,request.setAttribute()是一个用于在request对象中设置属性值的方法。它是通过request对象将数据从服务器端传递到客户端的一个常用方式。 通常,我们通过JSP页面和JavaBean之间的…

    JavaScript 2023年6月10日
    00
  • js前端面试之同步与异步问题详解

    JS前端面试之同步与异步问题详解攻略 1. 同步与异步的概念 同步和异步都是指程序的执行方式,它们的区别在于程序执行完成的时间点不同。同步是指代码按照顺序一行一行地执行,需要等待前面的代码执行完成后才会执行后面的代码。而异步则是指代码不需要按照顺序执行,可以在后台继续执行其他代码,当前面的代码执行完成后再回来执行后面的代码。 2. 同步与异步的应用场景 同步…

    JavaScript 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部