zoukankan      html  css  js  c++  java
  • 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;
    }
    如水穿石,厚积才可薄发
  • 相关阅读:
    #在蓝懿学习iOS的日子#Day10
    #在蓝懿学习iOS的日子#Day9
    #在蓝懿学习iOS的日子#第三个练习日
    #在蓝懿学习iOS的日子#Day8
    WCF基础:绑定(二)
    WCF基础:绑定(三)
    WCF基础:绑定(一)
    MVC框架中的值提供机制(三)
    MVC框架中的值提供机制(二)
    MVC框架中的值提供机制(一)
  • 原文地址:https://www.cnblogs.com/pqjwyn/p/5359548.html
Copyright © 2011-2022 走看看