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. C#加密解密(DES,AES,Base64,md5,SHA256,RSA,RC4)

    一:异或^简单加解密(数字类型) 1:原理: 异或用于比较两个二进制数的相应位,在执行按位"异或"运算时,如果两个二进制数的相应位都为1或者都为0,则返回0;如果两个二进制数的相应 ...

  2. fw: openstack

    OpenStack既是一个社区,也是一个项目和一个开源软件,它提供了一个部署云的操作平台或工具集.其宗旨在于,帮助组织运行为虚拟计算或存储服务的云,为公有云.私有云,也为大云.小云提供可扩展的.灵活的 ...

  3. Linux 本人常用到的基本命令

    cat -n FileName //查看FileName文件的内容.-n显示对应行号. yum install SoftName //安装软件,切记使用root权限. service //查看服务.例 ...

  4. 关于oracle的相关基础语句

    ----给表的字段添加描述COMMENT ON COLUMN 数据库名称.表名.表字段 IS '字段描述'; ---设置自动增长 CREATE SEQUENCE emp_sequence INCREM ...

  5. js获取节点的DOM操作

    一直感觉DOM节点什么的乱七八糟的不能理解,可能博客也没办法写清楚,只能把知道的一些信息大致写下来慢慢再补充了. HTML DOM类型 Node类型 Javascript中的所有节点类型都继承自Nod ...

  6. MVC Actionlink 参数说明

    Html.ActionLink用于输出链接,以下是带参数的例子: @Html.ActionLink("编辑", "Edit", new {id= "1 ...

  7. Android IOS WebRTC 音视频开发总结(七一)-- H265/H264有何不同

    本文整理自自网络,非原创,喜欢相关文章请关注我们的微信公众号:blackerteam H.265 H.265是ITU-TVCEG继H.264之后所制定的新的视频编码标准.H.265标准围绕着现有的视频 ...

  8. js中Array对象方法详解

    操作方法:concat() slice() splice() concat()方法可以基于当前数组中的所有项创建一个新数组.具体来说,这个方法会创建当前数组一个副本,将接收到参数添加到副本的末尾,最后 ...

  9. {VS2010C#}{WinForm}{ActiveX}VS2010C#开发基于WinForm的ActiveX控件

    在VS2010中使用C#开发基于WinForm的ActiveX控件 常见的一些ActiveX大部分是使用VB.Delphi.C++开发,使用C#开发ActiveX要解决下面三个问题: 使.NET组件可 ...

  10. VC++ 关于 ON_UPDATE_COMMAND_UI 相关的作用.

    ON_COMMAND_RANGE(ID_SORTING_GROUPBYTYPE, ID_SORTING_SORTBYACCESS, OnSort) ON_UPDATE_COMMAND_UI_RANGE ...