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

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

转换函数如下:

/**
 * 格式化秒
 * @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将时间秒转换成天小时分钟秒的字符串,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

(0)

相关推荐

  • js 时间格式与时间戳的相互转换示例代码

    一.时间转换时间戳 复制代码 代码如下: function transdate(endTime){ var date=new Date(); date.setFullYear(endTime.substring(0,4)); date.setMonth(endTime.substring(5,7)-1); date.setDate(endTime.substring(8,10)); date.setHours(endTime.substring(11,13)); date.setMinutes(

  • 时间戳转换为时间 年月日时间的JS函数

    复制代码 代码如下: ormatDate:function(dateNum){var date=new Date(dateNum*1000);return date.getFullYear()+"-"+fixZero(date.getMonth()+1,2)+"-"+fixZero(date.getDate(),2)+" "+fixZero(date.getHours(),2)+":"+fixZero(date.getMinu

  • JS获取时间的相关函数及时间戳与时间日期之间的转换

    时间戳和时间日期的转换是常见的操作,下面就通过代码实例介绍一下如何实现它们之间的相互转换. 在没学习本文之前先给大家介绍下javascript中Date()构造函数参数: 关于Date对象大家想必一定不陌生,使用Date()构造函数创建一个时间对象是最基本的操作了,例如: var theDate=new Date(); theDate.getDate(); 使用以上代码可以获取当前日期的天. 上面是对于Date()构造函数最简单的应用了,Date对象具有多种构造函数,下面简单列举如下: new

  • js时间戳与日期格式之间相互转换

    本文实例为大家分享了js时间戳与日期格式之间相互转换的代码,供大家参考,具体内容如下 1. 将时间戳转换成日期格式 // 简单的一句代码 var date = new Date(时间戳); //获取一个时间对象 /** 1. 下面是获取时间日期的方法,需要什么样的格式自己拼接起来就好了 2. 更多好用的方法可以在这查到 -> http://www.w3school.com.cn/jsref/jsref_obj_date.asp */ date.getFullYear(); // 获取完整的年份(

  • javascript时间戳和日期字符串相互转换代码(超简单)

    javascript时间戳和日期字符串相互转换代码(超简单) <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type="text/javascript"> // 获取当前

  • js与C#进行时间戳转换

    JS时间戳转成C#里的时间,再把C#里的时间戳转成JS的时间 JS里的时间戳 复制代码 代码如下: var dt = new Date().getTime();//时间戳 C# 时间戳转时间 复制代码 代码如下: DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime( new DateTime(1970, 1, 1));             long lTime = long.Parse(dt + "0000");  //说

  • js获取时间并实现字符串和时间戳之间的转换

    废话少说,直接上代码 复制代码 代码如下: //获取当前时间:   var myDate = new Date();//当前时间   var year = myDate.getFullYear();//当前年份   var month = myDate.getMonth() + 1;//当前月份   var day = myDate.getDate();//当前日   myDate.getYear();        //获取当前年份(2位)     myDate.getFullYear(); 

  • js实现把时间戳转换为yyyy-MM-dd hh:mm 格式(es6语法)

    如下所示: function formatDate(date,fmt) { if(/(y+)/.test(fmt)){ fmt = fmt.replace(RegExp.$1,(date.getFullYear()+'').substr(4-RegExp.$1.length)); } let o = { 'M+':date.getMonth() + 1, 'd+':date.getDate(), 'h+':date.getHours(), 'm+':date.getMinutes(), 's+'

  • Vue.js 时间转换代码及时间戳转时间字符串

    Date.prototype.format = function(format){ var o = { "M+" : this.getMonth()+1, //month "d+" : this.getDate(), //day "h+" : this.getHours(), //hour "m+" : this.getMinutes(), //minute "s+" : this.getSeconds()

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

    项目中需求是这样,接口返回的数据中时间单位为秒,但前端显示的时候需要更人性化的带有单位(天,小时,分钟,秒)的字符串: 转换函数如下: /** * 格式化秒 * @param int value 总秒数 * @return string result 格式化后的字符串 */ function formatSeconds(value) { var theTime = parseInt(value);// 需要转换的时间秒 var theTime1 = 0;// 分 var theTime2 = 0

  • vue js秒转天数小时分钟秒的实例代码

    具体代码如下所示: SecondToDate: function(msd) { var time =msd if (null != time && "" != time) { if (time > 60 && time < 60 * 60) { time = parseInt(time / 60.0) + "分钟" + parseInt((parseFloat(time / 60.0) - parseInt(time /

  • mysql 日期和时间格式转换实现语句

    这里是一个使用日期函数的例子.下面的查询选择了所有记录,其date_col的值是在最后30天以内: mysql> SELECT something FROM table WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) <= 30; DAYOFWEEK(date) 返回日期date的星期索引(1=星期天,2=星期一, --7=星期六).这些索引值对应于ODBC标准. mysql> select DAYOFWEEK('1998-02-03'); ->

  • JS把字符串格式的时间转换成几秒前、几分钟前、几小时前、几天前等格式

    最近在做项目的时候,需要把后台返回的时间转换成几秒前.几分钟前.几小时前.几天前等的格式:后台返回的时间格式为:2015-07-30 09:36:10,需要根据当前的时间与返回的时间进行对比,最后显示成几秒前.几分钟前.几小时前.几天前的形式. 1.由于返回的时间是字符串格式,所以要先转换成时间戳 //字符串转换为时间戳 function getDateTimeStamp (dateStr) { return Date.parse(dateStr.replace(/-/gi,"/"))

  • js实现时间显示几天前、几小时前或者几分钟前的方法集锦

    这里汇总了js实现时间显示几天前.几小时前或者几分钟前的常见方法.分享给大家供大家参考.具体如下: 方法一: 个人做法是保存时间戳,然后在前端用jq插件做转换,比如 smart-time-ago 方法二: (通过freemarker模板)如果用freemarker模板可以这样写,别的模板类推 根据自己的意愿修改条件和输出,把你的datetime传进去即可 <#macro timeline_dt datetime=.now> <#assign ct = (.now?long-datetim

  • js获取时间精确到秒(年月日)

    本文实例为大家分享了利用js获取时间并输出值的全部代码,供大家参考学习,具体内容如下 实现代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="gb2312"> <title></title> <script type="text/javascript"> window.onload=function

  • JS的时间格式化和时间戳转换函数示例详解

    JS的时间格式化和时间戳转换函数 //格式化时间 function dateFormat(fmt,date){ var o = { "M+" : date.getMonth()+1, //月份 "d+" : date.getDate(), //日 "h+" : date.getHours(), //小时 "m+" : date.getMinutes(), //分 "s+" : date.getSeconds

  • 通过js控制时间,一秒一秒自己动的实例

    1.第一种形式 <html> <head> <title>时间</title> <script type="text/javascript"> setInterval("showtime()", 1000); function showtime() { var date = new Date(); var time = date.getHours() + ":" + date.getMi

  • js计算两个时间差 天 时 分 秒 毫秒的代码

    具体代码如下所述: // 计算两个时间差 dateBegin 开始时间 function timeFn(dateBegin) { //如果时间格式是正确的,那下面这一步转化时间格式就可以不用了 var dateEnd = new Date();//获取当前时间 var dateDiff = dateEnd.getTime() - dateBegin;//时间差的毫秒数 var dayDiff = Math.floor(dateDiff / (24 * 3600 * 1000));//计算出相差天

  • js日期时间格式化的方法实例

    js日期时间格式化 将日期时间转换为指定格式,如:YYYY-mm-dd HH:MM表示2019-06-06 19:45 function dateFormat(fmt, date) { let ret; const opt = { "Y+": date.getFullYear().toString(), // 年 "m+": (date.getMonth() + 1).toString(), // 月 "d+": date.getDate().t

随机推荐