博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JS将日期转为距现在的时间长度
阅读量:5911 次
发布时间:2019-06-19

本文共 1604 字,大约阅读时间需要 5 分钟。

最近在弄一个回忆网站,其中有个一板块类似于情侣空间的纪念日。

在这里插入图片描述照着弄了个类似的,效果如下:

在这里插入图片描述
在处理过程中需要把时间戳转为Date()对象,然后与本地时间相减获得时间差,通过运算转换成对应的年月日时长,最后转换成对应的字符串。这里我将这一系列操作封装成一个dateConver()函数。
下面给出源码。


HTML部分

2016-09-05

JavaScript部分

const dateConver= time => {
//获取当前时间对象 const now = new Date(); //将传入的时间戳格式转为Date对象可以识别的格式,并将其转为一个Date()对象 const formatTime = new Date(time.replace(/-/g, "/")); //格式化时间,直接相减为毫秒数,这里转为天数。 const daysLong = Math.ceil( (Date.parse(now) - Date.parse(formatTime)) / (1000 * 60 * 60 * 24) ); //下面获取整年整月天数,注意这里的年和月需要舍去小数部分。 //注意这里的年月日都是近似值,一个月30天,一年365日 let years = Math.floor(daysLong / 365) > 0 ? Math.floor(daysLong / 365) : ""; let months = Math.floor((daysLong - years * 365) / 30) > 0 ? Math.floor((daysLong - years * 365) / 30) : ""; let days = daysLong - years * 365 - months * 30 > 0 ? daysLong - years * 365 - months * 30 : ""; console.log(days + " " + months + " " + years); // 根据是否有整值重新赋值为字符串,方便直接返回一个完整的字符串。 years = years ? years + "年" : ""; months = months ? months + "个月" : ""; days = days ? days + "天" : ""; return `${
time}
已经${
years}${
months}${
days}了${
daysLong}天
`;//这里使用JQ获取所有带有自定义属性time的DOM元素 const timeLine = $("p[time]");for (const ele in timeLine) {
if (timeLine.hasOwnProperty(ele)) {
const element = timeLine[ele]; // 读取元素的time属性值 const time = element.getAttribute("time"); element.innerHTML = dateConver(time); }}

转载于:https://www.cnblogs.com/YooHoeh/p/10088520.html

你可能感兴趣的文章
dll 远程线程注入
查看>>
简单线性相关系数 r及检验
查看>>
移动动态化方案在蜂鸟的架构演进(含React Native与Weex对比)
查看>>
oracle中 all any in的用法
查看>>
php 多个文件上传
查看>>
【Spark亚太研究院系列丛书】Spark实战高手之路-第一章 构建Spark集群(第四步)(6)...
查看>>
再谈.NET Micro Framework移植
查看>>
Android中Context详解 ---- 你所不知道的Context
查看>>
关于Android ListView组件中android:drawSelectorOnTop含义(
查看>>
我想要的语言
查看>>
shell脚本for循环
查看>>
cisco 作业集合
查看>>
HTTP常见状态码
查看>>
java栈与队列面试题
查看>>
Oracle RAC集群环境下日志文件结构
查看>>
java 实现DFA 算法(理论百度搜索)
查看>>
ARP协议的安全问题和安全威胁
查看>>
钗头凤
查看>>
自动创建LAMP架构
查看>>
翻转式用户登录注册界面设计
查看>>