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;
}

js时间 字符串相互转化的更多相关文章

  1. js 时间字符串转化为时间

    对于时间字符串格式为:"2017-03-03 12:23:55"; IE:显示无效的日期 new Date("2017-03-3 12:23:55") //[d ...

  2. JS 时间格式 相互转化

    1. 时间字符串格式 var dateString1 = '2016-06-15 10:22:00'; var dateString2 = '2016/06/15 10:22:00'; var dat ...

  3. JS 时间字符串与时间戳之间的转换

    1.当前时间换时间戳 var timestamp = parseInt(new Date().getTime()/1000); // 当前时间戳 document.write(timestamp); ...

  4. js时间字符串转为标准时间

    //将字符串转换为时间格式,适用各种浏览器,格式如2016-09-09T17:02:37.227"function GetTimeByTimeStr(dateString) { var ti ...

  5. js时间字符串转时间戳

    字符串形如:2016-06-20 10:41 转换为时间戳: var date = "2016-06-20 10:41"; date = date.substring(,); da ...

  6. js时间字符串转Date对象

    var DATE_REGEXP = new RegExp("(\\d{4})-(\\d{2})-(\\d{2})([T\\s](\\d{2}):(\\d{2}):(\\d{2})(\\.(\ ...

  7. Js 时间与字符串转示例

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...

  8. js计算字符串的字节数和字符串与二进制的相互转化

    一.js计算字符串的字节数方法: //blob获取字符串的字节 var debug = "好的"; var blob = new Blob([debug],{type : 'tex ...

  9. 表单序列化json字符串和js时间格式化

    js时间格式化 new Date().format("时间格式") Date.prototype.format = function(fmt) { var o = {        ...

随机推荐

  1. (LinkedList) Remove Linked List Elements

    Remove all elements from a linked list of integers that have value val. ExampleGiven: 1 --> 2 --& ...

  2. PaintCode调研

    1.   背景 PaintCode是一款面向iOS和Mac应用开发者及设计师的矢量图形可视化开发工具.它可以让设计师把设计好的psd文件直接导入该工具,然后生成用Quartz 2D 产生的object ...

  3. 37. Binary Tree Zigzag Level Order Traversal && Binary Tree Inorder Traversal

    Binary Tree Zigzag Level Order Traversal Given a binary tree, return the zigzag level order traversa ...

  4. 创建线程方式-NSThread

    *:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...

  5. aspx中如何绑定llistbox数据列表

    DataTable dt = new DataTable(); dt = goodsbll.Get_prodtolist(_fatherpeoid,_sonpeoid).Tables[]; ) { f ...

  6. openldap主机访问控制(基于hostname)

    http://mayiwei.com/2013/03/21/centos6-openldap/ http://www.zytrax.com/books/ldap/ch11/dynamic.html h ...

  7. Ms sql将首字母大写

    --辅助表 create table a ( a int ) declare @b int begin insert into a values(@b) end; go --表数据 ),id int) ...

  8. APP分发渠道的竞争分析

    一. 最近几年,手机APP市场发展非常迅速,随着手机的硬件水平的不断升级,大量资本涌入,越来越多的开发者从桌面平台开发转移到移动平台开发,面对数以万计的手机APP,如何推广自己的APP成了难题,APP ...

  9. 温习SQL server

    做了好几年的管理工作,技术上有些退步,现在又一一捡起来啦, 以下最近几天看到的好文章, SQL Server约束 http://blog.csdn.net/qq61394323/article/det ...

  10. Android_layout 布局(一)

    今天主要学习了Android 的layout布局. Android layout 布局一般分为五种: LinearLayout (线性布局) :子组件按照垂直或者水平方向来布局. RelativeLa ...