第一个是我自己写的

// t等于时间戳差
function changeTime(t) {
let timeStr = ''
let tmp = t/(24* 3600 * 1000)
if (tmp > 1) timeStr = parseInt(tmp) + '天' if (tmp) {
tmp = tmp.toString().split('.')[1] tmp = parseInt(tmp)
tmp = t/(3600 * 1000) if (tmp>1) timeStr += parseInt(tmp) + '小时'
tmp = tmp.toString().split('.')[1] tmp = parseInt(tmp)
tmp = tmp/(1000 * 60)
if (tmp>1) timeStr += parseInt(tmp) + '分钟' tmp = parseInt(tmp)
tmp = tmp/1000
if (tmp>1) timeStr += parseInt(tmp) + '秒' }
return timeStr
}

  计算结果不对, 因为余数取值错误 7÷3 = 2 ······1,如果用以上方法取余数,此时7÷3 = 2······33333,显然是不对的
正确的方法后面补充。。。

function getDjsTime (timestamp) {
let t = timestamp - new Date().getTime()
if (t<0) {
return false
}
// 得到天数
let days = parseInt(t / 1000 / 60 / 60 / 24)
// 得到小时
let hours = parseInt(t / 1000 / 60 / 60 % 24)
// 得到分钟
let minutes = parseInt(t / 1000 / 60 % 60)
// 得到秒
let seconds = parseInt(t / 1000 % 60) let timeStr = days + '天'
timeStr += hours + '小时'
timeStr += minutes + '分钟'
timeStr += seconds + '秒' return timeStr
}
let d = '2020-10-1'
djsTimeValue = getDjsTime()
let inter = setInterval(_ => {
let text = djsTime(d)
if (text) {
djsTimeValue = text
} else {
djsTimeValue = '超出投资时间'
clearInterval(inter)
}
}, 1000)

  也可以写成setTimeout 方式

function djsTime (timestamp) {
let t = timestamp - new Date().getTime()
if (t<) {
djsTimeValue = '投资时间结束'
}
// 得到天数
let days = parseInt(t / / / / )
// 得到小时
let hours = parseInt(t / / / % )
// 得到分钟
let minutes = parseInt(t / / % )
// 得到秒
let seconds = parseInt(t / % ) let timeStr = days + '天'
timeStr += hours + '小时'
timeStr += minutes + '分钟'
timeStr += seconds + '秒' djsTimeValue = timeStr // 设置时间
setTimeout(_ => {
djsTime(timestamp)
}, )
}
djsTime (‘2020-10-1’) 直接调用即可

还有一种维持djs函数独立的写法,我喜欢这种

function djsTime (timestamp) {
let t = timestamp - new Date().getTime()
if (t<0) {
return false
}
// 得到天数
let days = parseInt(t / 1000 / 60 / 60 / 24)
// 得到小时
let hours = parseInt(t / 1000 / 60 / 60 % 24)
// 得到分钟
let minutes = parseInt(t / 1000 / 60 % 60)
// 得到秒
let seconds = parseInt(t / 1000 % 60) let timeStr = days + '天'
timeStr += hours + '小时'
timeStr += minutes + '分钟'
timeStr += seconds + '秒' return timeStr
} function test() {
let timeStr = djsTimeFun()
if (!timeStr) {
djsTimeValue = timeStr // 设置时间
} else {
djsTimeValue = '超出投资时间' // 设置时间
}
setTimeout(_ => {
test(timestamp)
}, 1000)
}
test()

  

js 计算倒计时的更多相关文章

  1. 倒计时的js实现 倒计时 js Jquery

    by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=987 一.如火如荼的团 ...

  2. js活动倒计时

    html代码: <div "></div> <div "></div> <div "></div> ...

  3. JS实现倒计时(天数,时,分,秒)

    <!DOCTYPE html> <html> <head>   <meta charset="utf-8" >   <titl ...

  4. 一个简单的js实现倒计时函数

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. js时间倒计时

    看了网上的其他的例子,觉得写的都有点复杂,不好理解,于是自己动手写了个. 本来想封装成jquery插件,但是觉得因为功能很简单,没有必要做成jquery插件,引用的时候不需要引入jqery库,这里直接 ...

  6. js实现倒计时及时间对象

    JS实现倒计时效果代码如下: <!doctype html> <html> <head> <meta charset="utf-8"> ...

  7. js 验证码 倒计时60秒

    js 验证码 倒计时60秒 <input type="button" id="btn" value="免费获取验证码" /> & ...

  8. JS计算字符串所占字节数

    最近项目有个需求要用js计算一串字符串写入到localStorage里所占的内存,众所周知的,js是使用Unicode编码的.而Unicode的实现有N种,其中用的最多的就是UTF-8和UTF-16. ...

  9. js计算2个日期相差的天数,两个日期相差的天数,日期相隔天数

    js计算2个日期相差的天数,两个日期相差的天数,日期相隔天数 >>>>>>>>>>>>>>>>>& ...

随机推荐

  1. TensorFlow自动求梯度

    例1 import tensorflow as tf a=tf.Variable(tf.constant(1.0),name='a') b=tf.Variable(tf.constant(1.0),n ...

  2. nginx+uWSGI+django+virtualenv+supervisor发布web服务器流程

    导论 WSGI是Web服务器网关接口.它是一个规范,描述了Web服务器如何与Web应用程序通信,以及Web应用程序如何链接在一起以处理一个请求,(接收请求,处理请求,响应请求)基于wsgi运行的框架有 ...

  3. Babel编辑ES6代码

    1.安装babel依赖 npm install --save-dev @babel/core @babel/cli @babel/preset-env npm install --save @babe ...

  4. shiro的Quickstart

    /** * Simple Quickstart application showing how to use Shiro's API. * * @since 0.9 RC2 */ public cla ...

  5. TCP定时器 之 重传/延迟ACK/保活 定时器初始化

    创建socket时会创建传输控制块,之后调用初始化函数对控制块进行初始化,其中包括对定时器的初始化,tcp会调用tcp_init_xmit_timers函数来初始化这些定时器,本文将详细分析tcp_i ...

  6. Eclipse中文插件安装教程

    先运行英文版Eclipse 点击Help选择Install New Software 直接点击Add按钮 Name输入: Babel Location输入: http://download.eclip ...

  7. Golang协程实现流量统计系统(2)

    从进程开始,搜索和理解进程 Google 搜索关键词: C fork example 什么是fork Fork系统调用用于创建一个称为子进程的新进程,该子进程与进行fork()调用的进程(父进程)同时 ...

  8. Springboot2.x使用redis作为缓存

    一.Springboot2.x关于配置redis作为缓存. 基本配置如下: (1)在application.properties文件中 spring.redis.database=2 //第几个数据库 ...

  9. [Java]将算术表达式(中序表达式Infix)转成后续表达式Postfix

    Inlet类: package com.hy; import java.io.BufferedReader; import java.io.IOException; import java.io.In ...

  10. datagrid数据清空

    方法一: 不管是url方式还是加载本地数据的方式,均可以直接使用loadData方法清空数据,一行代码就可以清空: $('#tt').datagrid('loadData',{total:0,rows ...