React 如何拿时间戳计算得到开始和结束时间戳

2023-09-21 17:53:47

获取需要的时间戳(开始 and 结束时间戳) 调用如下方法就行:

function getWantTimestamp(props) {
  //当前时间
  const nowDate = parseInt((new Date().getTime() / 1000).toString()); //当前时间
  switch (props) {
    // 当前时间时间戳
    case "nowData": {
      return nowDate;
    }
    // 当前零点得时间戳
    case "nowZero": {
      let nowZero = nowDate - (nowDate % 86400) - 3600 * 8;
      return nowZero;
    }
    // 过去24小时的时间戳
    case "formerlyDay": {
      let formerlyDay = nowDate - 86400;
      return formerlyDay;
    }
    // 昨天的零点的时间戳
    case "yesterdayZero": {
      let yesterdayZero = nowDate - (nowDate % 86400) - 3600 * 8 - 3600 * 24;
      return yesterdayZero;
    }
    // 本周星期一零点的时间戳
    case "thisMondayZero": {
      let nowThisWeek = new Date().getDay(); //获取当前周
      let a = nowDate - (nowThisWeek - 1) * 86400; //得到当前时间到这周
      let thisMondayZero = a - (a % 86400) - 3600 * 8;
      return thisMondayZero;
    }
    // 上周星期一零点的时间戳
    case "lastMondayZero": {
      let nowThisWeek = new Date().getDay(); //获取当前周
      let a = nowDate - (nowThisWeek - 1) * 86400; //得到当前时间到这周
      let thisMondayZero = a - (a % 86400) - 3600 * 8;
      let lastMondayZero = thisMondayZero - 86400 * 7;
      return lastMondayZero;
    }
    // 过去7天的时间戳
    case "formerlySevenDay": {
      let formerlySevenDay = nowDate - 86400 * 7;
      return formerlySevenDay;
    }
    // 本月开始第一天零点的时间戳
    case "thisMonthBeginZero": {
      let MonthDate: any = new Date();
      MonthDate.setDate(1); //set设置时间
      MonthDate.setHours(0);
      MonthDate.setSeconds(0);
      MonthDate.setMinutes(0);
      let thisMonthBeginZero = parseInt((MonthDate / 1000).toString());
      return thisMonthBeginZero;
    }
    // 过去30天的时间戳
    case "formerlyThirtyDays": {
      let formerlyThirtyDays = nowDate - 86400 * 30;
      return formerlyThirtyDays;
    }
    // 上个月的零点的时间戳
    case "lastMonthDayZero": {
      let nowMonthDate: any = new Date();
      let getMonth = nowMonthDate.getMonth() + 1;
      nowMonthDate.setMonth(getMonth - 2);
      nowMonthDate.setDate(1); //set设置时间
      nowMonthDate.setHours(0);
      nowMonthDate.setSeconds(0);
      nowMonthDate.setMinutes(0);
      let lastMonthDayZero = parseInt((nowMonthDate / 1000).toString());
      return lastMonthDayZero;
    }
    // 今年开始第一天零点的时间戳
    case "thisYearDayZero": {
      let yearDate: any = new Date();
      yearDate.setMonth(0);
      yearDate.setDate(1); //set设置时间
      yearDate.setHours(0);
      yearDate.setSeconds(0);
      yearDate.setMinutes(0);
      let thisYearDayZero = parseInt((yearDate / 1000).toString());
      return thisYearDayZero;
    }
    // 过去12个月的时间戳
    case "formerlyTwelveYearZero": {
      let now12Date: any = new Date();
      let getYear12 = now12Date.getFullYear();
      now12Date.setYear(getYear12 - 1);
      let formerlyTwelveYearZero = parseInt((now12Date / 1000).toString());
      return formerlyTwelveYearZero;
    }
    // 去年开始第一天的时间戳
    case "lastYearDayZero": {
      let nowYearDate: any = new Date();
      let getYear = nowYearDate.getFullYear();
      nowYearDate.setYear(getYear - 1);
      nowYearDate.setMonth(0);
      nowYearDate.setDate(1); //set设置时间
      nowYearDate.setHours(0);
      nowYearDate.setSeconds(0);
      nowYearDate.setMinutes(0);
      let lastYearDayZero = parseInt((nowYearDate / 1000).toString());
      return lastYearDayZero;
    }
    default: {
      console.log("时间参数错误");
      return 0;
    }
  }
}

调用getWantTimestamp()方法就能得到需要的时间戳:

getWantTimestamp("nowData")//nowData是switch的判断的参数

 计算当前时间到今晚23:59:59的时间戳:

//当前23:59:59秒时间戳
let today = new Date(new Date().toLocaleDateString()).getTime() + 24*60*60*1000-1
//当前时间戳
let nowDate = parseInt((new Date().getTime()).toString());
//当前时间距离23:59:59秒的时间戳差值
console.log((today - nowDate) / 1000));

动态获取当前年月日时分秒:

import React, { useState, useEffect } from 'react';
 
function CurrentDateTime() {
  const [currentDateTime, setCurrentDateTime] = useState(new Date());
 
  useEffect(() => {
    const interval = setInterval(() => {
      setCurrentDateTime(new Date());
    }, 1000); // 每秒更新一次
 
    return () => {
      clearInterval(interval);
    };
  }, []);
 
  const year = currentDateTime.getFullYear();
  const month = currentDateTime.getMonth() + 1; // 月份从 0 开始,因此需要加 1
  const date = currentDateTime.getDate();
  const hours = currentDateTime.getHours();
  const minutes = currentDateTime.getMinutes();
  const seconds = currentDateTime.getSeconds();
 
  return (
    <div>
      <p>当前年月日: {year}-{month < 10 ? `0${month}` : month}-{date}</p>
      <p>当前时分秒: {hours}:{minutes < 10 ? `0${minutes}` : minutes}:{seconds < 10 ? `0${seconds}` : seconds}</p>
    </div>
  );
}
 
export default CurrentDateTime;

更多推荐

[CISCN 2019 初赛]Love Math 通过进制转换执行命令

目录hex2binbin2hexbase_convert动态函数第一种解法通过get获取参数绕过第二种解法读取请求头getallheadersechoa,b第三种解法异或获得更多字符这道题也是很有意思!通过规定白名单和黑名单指定了函数为数学函数并且参数也只能是规定在白名单中的参数我们首先要了解通过进制转换执行命令的第一

【论文基本功】【LaTeX】个人常用易忘LaTeX命令

【论文基本功】【LaTeX】个人常用易忘LaTeX命令1.基本符号2.引用3.字体及符号大小4.其他参考1.基本符号符号LaTeX命令备注∣⋅∣|\cdot|∣⋅∣|\cdot|绝对值∣∣⋅∣∣||\cdot||∣∣⋅∣∣\|\cdot\|范数⌈⋅⌉\lceil\cdot\rceil⌈⋅⌉\lceil\cdot\rce

SpringBoot MyBatisPlus Oracle

官网官⽹:https://mybatis.plus/或https://mp.baomidou.com/pom<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www

shell脚本自动化执行jar包

需要用shell脚本来自动化执行jar包,以后可以用jenkins来CI/CD,记录一下对应实现。实现需求以命令行执行shell传入的第一个参数为jar名进行执行。对应jar已存在执行进程,关闭对应进程后再执行。以后台方式执行对应的jar包,输出log文件并判断是否成功执行。测试用jar包和功能为了保持进程执行不退出,

简单的分析下dart实现grpc客户端的流程,以helloworld为例

第三步:实现实现gRPC方法在HelloWorldClient类中,为每个定义在.proto文件中的rpc方法实现对应的Dart方法。简单的分析下dart实现grpc客户端的流程,以helloworld为例这里给出helloworld的proto文件,grpc协议下客户端和服务端都只需要关注相同的proto文件并以自己

JVM-环境准备&性能指标&基础知识

环境准备&性能指标&基础知识环境准备JDK—工具JDK(JavaDevelopmentKit)是用于开发Java应用程序的软件开发工具集合,包括了Java运行时的环境(JRE)、解释器(Java)、编译器(javac)、Java归档(jar)、文档生成器(Javadoc)等工具。简单的说我们要开发Java程序,就需要安

YOLOv8快速复现 训练 SCB-Dataset3-S 官网版本 ultralytics

目录0相关资料SCB-Dataset3-S数据训练yaml文件YOLOv8训练SCB-Dataset3-S相关参数0相关资料YOLOV8环境安装教程.:https://www.bilibili.com/video/BV1dG4y1c7dH/YOLOV8保姆级教学视频:https://www.bilibili.com/v

【R语言】完美解决devtools安装GitHub包失败的问题(以gwasglue为例)

Rstudio,R4.3.1,命令在Rstudio的命令行即console中运行。文章目录一、问题复述二、分析三、解决四、安装示例:gwasglue一、问题复述使用devtools安装一个github的包。devtools:devtools是R语言中一个非常有用的包,它提供了一套工具和函数,用于开发、测试和维护R包,d

Jenkins自动化部署前后端分离项目 (svn + Springboot + Vue + maven)有图详解

1.准备工作本文的前后端分离项目,技术框架是:Springboot+Vue+Maven+SVN+Redis+Mysql+Nginx+JDK所以首先需要安装以下:在腾讯云服务器OpenCLoudOS系统中安装jdk(有图详解)在腾讯云服务器OpenCLoudOS系统中安装mysql(有图详解)在腾讯云服务器OpenCLo

Fink--3、Flink运行时架构(并行度、算子链、任务槽、作业提交流程)

1、系统架构(以Standalone会话模式为例)1、作业管理器(JobManager)JobManager是一个Flink集群中任务管理和调度的核心,是控制应用执行的主进程。也就是说,每个应用都应该被唯一的JobManager所控制执行。JobManager又包含三个不同的组件(1)JobMasterJobMaste

性能测试、负载测试、压力测试、稳定性测试简单区分

是一个总称,可细分为性能测试、负载测试、压力测试、稳定性测试。性能测试以系统设计初期规划的性能指标为预期目标,对系统不断施加压力,验证系统在资源可接受范围内,是否能达到性能瓶颈。关键词提取理解有性能指标,验证性能测试目标验证系统的性能指标,是否为初期规划的预期目标客户指定相关性能指标,有性能相关要求,测试以这些指标为参

热文推荐