js時間 字符串相互轉化


  js的時間和字符串的轉化的講解是有很多文章的,基本的都是一致的原理。不過曾經碰到過一個比較坑爹的需求,看到網上很少有相關的總結,所以自己簡單的記錄一下,給后來的同學們點思路。

  當時的需求是這樣子的,某種活動有開始和結束時間兩個select,還有每場時間間隔,目的是根據起始時間和每場間隔來生成n個場次,例如八點到九點,每場時長40分鍾,生成的場次也就是8:00-8:40.說來也很簡單,但是問題在於拿到的是字符串,並不是時間,並且存在次日4:00這種奇葩的情況。當時費了好大勁,終於實現了,不過后來放到后端來做了。。不過從中也鞏固了一下基本的東西,也是一種積累。

  此處主要討論如何由字符串按照時間的格式來生成場次的,其他的就忽略了。

  首先要得到其實時間之間間隔了多久肯定要轉化為時間對象的,以某一天作為標准,因為處理的主要是時間間隔,任選一天也影響不大。為了處理第二天的情況,就匹配了一下‘次日’存在與否,來生成date對象。具體代碼如下:

 //處理次日的情況

 soluTomrrow: function (str) {
  var self = app;
  if (str.indexOf('日') > -1) {
    str = str.substr(str.indexOf('日') + 1);
    str = '2016/03/19' + ' ' + str;
  } else {
    str = '2016/03/18' + ' ' + str;
  }
   return str;
},

 

    把起始時間轉換為時間對象,具體到每場的時間間隔就要根據時間對象的特性來算了,因為時間對象都是相對某個特定年份的水岸差得到的,所以兩個時間之間的時間差也是可以得到的,然后根據分鍾差得到對應的時間對象,

//將時間轉化為字符串
getTimeStr: function (time) {
  var self = app,
  dateT = new Date(time),
  str;
  var hours = dateT.getHours() < 10 ? '0' + dateT.getHours() : dateT.getHours();
  var mins = dateT.getMinutes() < 10 ? '0' + dateT.getMinutes() : dateT.getMinutes();
  str = hours + ':' + mins;
  return str;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM