首页 技术 正文
技术 2022年11月6日
0 收藏 362 点赞 1,015 浏览 980 个字

  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;
}
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,086
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,561
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,410
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,183
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,820
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,903