JS将时间秒转换成天小时分钟秒的字符串


Posted in Javascript onJuly 10, 2019

项目中需求是这样,接口返回的数据中时间单位为秒,但前端显示的时候需要更人性化的带有单位(天,小时,分钟,秒)的字符串;

转换函数如下:

/**
 * 格式化秒
 * @param int  value 总秒数
 * @return string result 格式化后的字符串
 */
function formatSeconds(value) { 
 var theTime = parseInt(value);// 需要转换的时间秒 
 var theTime1 = 0;// 分 
 var theTime2 = 0;// 小时 
 var theTime3 = 0;// 天
 if(theTime > 60) { 
  theTime1 = parseInt(theTime/60); 
  theTime = parseInt(theTime%60); 
  if(theTime1 > 60) { 
   theTime2 = parseInt(theTime1/60); 
   theTime1 = parseInt(theTime1%60); 
   if(theTime2 > 24){
    //大于24小时
    theTime3 = parseInt(theTime2/24);
    theTime2 = parseInt(theTime2%24);
   }
  } 
 } 
 var result = '';
 if(theTime > 0){
  result = ""+parseInt(theTime)+"秒";
 }
 if(theTime1 > 0) { 
  result = ""+parseInt(theTime1)+"分"+result; 
 } 
 if(theTime2 > 0) { 
  result = ""+parseInt(theTime2)+"小时"+result; 
 } 
 if(theTime3 > 0) { 
  result = ""+parseInt(theTime3)+"天"+result; 
 }
 return result; 
}

ps:下面看下js时间戳与时间日期间相互转换

今天在工作中要将获取到的时间转换为时间戳,一时间竟不知道怎么用,于是不得不去查询资料,这里特地做个笔记。

1、将日期转换为时间戳。

要将日期转换为时间戳,首先得先获取到日期,这里可以直接指定日期,或者是使用当前日期。要获取当前日期,我们可以使用new Date()来获取。直接上代码。

// (1)、将当前日期转换为时间戳。
 var now = new Date();
 console.log(now.getTime()) // 将当前日期转换为时间戳,getTime()方法可返回距1970年1月1日之间的毫秒数。也可以使用 +now ,该效果等同于now.getTime()

// (2)、将指定日期转换为时间戳。
 var t = "2017-12-08 20:5:30"; // 月、日、时、分、秒如果不满两位数可不带0.
 var T = new Date(t); // 将指定日期转换为标准日期格式。Fri Dec 08 2017 20:05:30 GMT+0800 (中国标准时间)
 console.log(T.getTime()) // 将转换后的标准日期转换为时间戳。

 2、将时间戳转换为日期。

var t = 787986456465; // 当参数为数字的时候,那么这个参数就是时间戳,被视为毫秒,创建一个距离1970年1月一日指定毫秒的时间日期对象。
console.log(new Date(t)) // Wed Dec 21 1994 13:07:36 GMT+0800 (中国标准时间)

var t2 = "2017-5-8 12:50:30";
console.log(new Date(t2)) // Mon May 08 2017 12:50:30 GMT+0800 (中国标准时间)

var t3 = "2017-10-1";
console.log(new Date(t3)) // Sun Oct 01 2017 00:00:00 GMT+0800 (中国标准时间) 不设定时分秒,则默认转换为00:00:00

将时间戳转换为指定格式日期的方法封装:

// 格式化日期,如月、日、时、分、秒保证为2位数
function formatNumber (n) {
 n = n.toString()
 return n[1] ? n : '0' + n;
}
// 参数number为毫秒时间戳,format为需要转换成的日期格式
function formatTime (number, format) {
 let time = new Date(number)
 let newArr = []
 let formatArr = ['Y', 'M', 'D', 'h', 'm', 's']
 newArr.push(time.getFullYear())
 newArr.push(formatNumber(time.getMonth() + 1))
 newArr.push(formatNumber(time.getDate()))

 newArr.push(formatNumber(time.getHours()))
 newArr.push(formatNumber(time.getMinutes()))
 newArr.push(formatNumber(time.getSeconds()))

 for (let i in newArr) {
  format = format.replace(formatArr[i], newArr[i])
 }
 return format;
}

如需要调用上述方法,使用formatTime(1545903266795, 'Y年M月D日 h:m:s')或者formatTime(1545903266795, 'Y-M-D h:m:s')即可

总结

以上所述是小编给大家介绍的JS将时间秒转换成天小时分钟秒的字符串,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
抽出www.templatemonster.com的鼠标悬停加载大图模板的代码
Jul 11 Javascript
Jquery+WebService 校验账号是否已被注册的代码
Jul 12 Javascript
Jquery实现列表(隔行换色,全选,鼠标滑过当前行)效果实例
Jun 09 Javascript
JavaScript作用域链使用介绍
Aug 29 Javascript
js兼容火狐获取图片宽和高的方法
May 21 Javascript
jQuery根据表单name获取值的方法
May 24 Javascript
EasyUI中在表单提交之前进行验证
Jul 19 Javascript
jQuery中Nicescroll滚动条插件的用法
Nov 10 Javascript
Jquery Easyui对话框组件Dialog使用详解(14)
Dec 19 Javascript
深入理解Angular中的依赖注入
Jun 26 Javascript
vue 实现用户登录方式的切换功能
Apr 14 Javascript
JavaScript的一些小技巧分享
Jan 06 Javascript
js Array.slice的8种不同用法示例
Jul 10 #Javascript
vue-router二级导航切换路由及高亮显示的实现方法
Jul 10 #Javascript
Vue编程式跳转的实例代码详解
Jul 10 #Javascript
微信小程序在ios下Echarts图表不能滑动的问题解决
Jul 10 #Javascript
Vue事件修饰符native、self示例详解
Jul 09 #Javascript
如何自定义微信小程序tabbar上边框的颜色
Jul 09 #Javascript
微信小程序wx.request拦截器使用详解
Jul 09 #Javascript
You might like
php中unlink()、mkdir()、rmdir()等方法的使用介绍
2012/12/21 PHP
php cookie名使用点号(句号)会被转换
2014/10/23 PHP
使用composer安装使用thinkphp6.0框架问题【视频教程】
2019/10/01 PHP
jQuery validate 中文API 附validate.js中文api手册
2010/07/31 Javascript
浅析JQuery UI Dialog的样式设置问题
2013/12/18 Javascript
node.js超时timeout详解
2014/11/26 Javascript
原生js实现模拟滚动条
2015/06/15 Javascript
浅谈JQuery+ajax+jsonp 跨域访问
2016/06/25 Javascript
浅谈jQuery中ajaxPrefilter的应用
2016/08/01 Javascript
node.js实现快速截图
2016/08/27 Javascript
nodeJS删除文件方法示例
2016/12/25 NodeJs
select自定义小三角样式代码(实用总结)
2017/08/18 Javascript
ES6 Promise对象的含义和基本用法分析
2019/06/14 Javascript
Vue开发中遇到的跨域问题及解决方法
2020/02/11 Javascript
vue使用vant中的checkbox实现全选功能
2020/11/17 Vue.js
JavaScript实现打字游戏
2021/02/19 Javascript
[53:21]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS LGD-CDEC
2014/05/22 DOTA
[53:15]2018DOTA2亚洲邀请赛3月29日 小组赛A组 LGD VS TNC
2018/03/30 DOTA
[01:02:48]2018DOTA2亚洲邀请赛小组赛 A组加赛 Newbee vs Liquid
2018/04/03 DOTA
python实现查找两个字符串中相同字符并输出的方法
2015/07/11 Python
在Python中执行系统命令的方法示例详解
2017/09/14 Python
selenium使用chrome浏览器测试(附chromedriver与chrome的对应关系表)
2018/11/29 Python
python实现通过队列完成进程间的多任务功能示例
2019/10/28 Python
Django框架HttpRequest对象用法实例分析
2019/11/01 Python
Python函数生成器原理及使用详解
2020/03/12 Python
adidas泰国官网:adidas TH
2020/07/11 全球购物
应聘自荐书
2013/10/08 职场文书
思想专业自荐信范文
2013/12/25 职场文书
《黄河颂》教学反思
2014/02/07 职场文书
高中语文课后反思
2014/04/27 职场文书
乡镇党委书记个人整改措施
2014/09/15 职场文书
2014年幼儿园安全工作总结
2014/11/10 职场文书
一个独生女的故事观后感
2015/06/04 职场文书
mysql 联合索引生效的条件及索引失效的条件
2021/11/20 MySQL
vue使用wavesurfer.js解决音频可视化播放问题
2022/04/04 Vue.js
【D4DJ】美少女DJ企划 动画将于明年冬季开播第2季
2022/04/11 日漫