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 相关文章推荐
jquery append()方法与html()方法的区别及使用介绍
Aug 01 Javascript
javascript检测浏览器的缩放状态实现代码
Sep 28 Javascript
第四章之BootStrap表单与图片
Apr 25 Javascript
JavaScript编写一个简易购物车功能
Sep 17 Javascript
js实现自定义进度条效果
Mar 15 Javascript
es7学习教程之Decorators(修饰器)详解
Jul 21 Javascript
echarts学习笔记之图表自适应问题详解
Nov 22 Javascript
layui radio性别单选框赋值方法
Aug 15 Javascript
vue项目中使用Hbuilder打包app 设置沉浸式状态栏的方法
Oct 22 Javascript
JS中的算法与数据结构之常见排序(Sort)算法详解
Aug 16 Javascript
LayUI switch 开关监听 获取属性值、更改状态的方法
Sep 21 Javascript
如何理解Vue前后端数据交互与显示
May 10 Vue.js
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网站备份程序代码分享
2011/06/10 PHP
php中file_get_content 和curl以及fopen 效率分析
2014/09/19 PHP
jQuery 遍历json数组的实现代码
2020/09/22 Javascript
入门基础学习 ExtJS笔记(一)
2010/11/11 Javascript
jquery ajax应用中iframe自适应高度问题解决方法
2014/04/12 Javascript
jquery中each遍历对象和数组示例
2014/08/05 Javascript
jquery和js实现对div的隐藏和显示方法
2014/09/26 Javascript
js实现同一页面多个不同运动效果的方法
2015/04/10 Javascript
Javascript实现获取及设置光标位置的方法
2015/07/21 Javascript
jquery日历插件datepicker用法分析
2016/01/22 Javascript
辨析JavaScript中的Undefined类型与null类型
2016/05/26 Javascript
浅谈JavaScript中面向对象的的深拷贝和浅拷贝
2016/08/01 Javascript
js简单正则验证汉字英文及下划线的方法
2016/11/28 Javascript
echarts3 使用总结(绘制各种图表,地图)
2017/01/05 Javascript
jquery中关于bind()方法的使用技巧分享
2017/03/30 jQuery
3分钟掌握常用的JS操作JSON方法总结
2017/04/25 Javascript
vue学习教程之带你一步步详细解析vue-cli
2017/12/26 Javascript
JS实现获取毫秒值及转换成年月日时分秒的方法
2018/08/15 Javascript
JSONP原理及应用实例详解
2018/09/13 Javascript
node app 打包工具pkg的具体使用
2019/01/17 Javascript
微信小程序 授权登录详解(附完整源码)
2019/08/23 Javascript
基于ajax及jQuery实现局部刷新过程解析
2020/09/12 jQuery
javascript实现评分功能
2020/06/24 Javascript
jquery实现有过渡效果的tab切换
2020/07/17 jQuery
vue组件中实现嵌套子组件案例
2020/08/31 Javascript
[38:44]DOTA2上海特级锦标赛A组小组赛#2 Secret VS CDEC第二局
2016/02/25 DOTA
Python实现抓取网页生成Excel文件的方法示例
2017/08/05 Python
python+mongodb数据抓取详细介绍
2017/10/25 Python
用Python实现读写锁的示例代码
2018/11/05 Python
python logging模块书写日志以及日志分割详解
2019/07/22 Python
Python实现把类当做字典来访问
2019/12/16 Python
澳大利亚首个在线预订旅游网站:Wotif
2017/07/19 全球购物
Linux面试题LINUX系统类
2015/11/25 面试题
租房协议书怎么写
2014/04/10 职场文书
电影地道战观后感
2015/06/04 职场文书