今天我开始研究一些事情。
我有2次。从现在开始的时间如10:10:15和日期27/02/2015 10:05:10。
所以对于这个例子我需要00:05:05但我无法弄清楚我是如何解决这个问题的,现在我已经搜索了几个小时。
答案 0 :(得分:0)
以下是如何将Date
实例中的时间字符串可靠地跨浏览器解析(即使它不在规范中):
var dt = new Date("01/01/2015 " + timeString);
或者如果你想在规范中做到这一点(但是在旧版浏览器上不能使用,因为规范只在ES5中添加了这个):
var dt = new Date("2015-01-01T" + timeString + "Z");
dt = new Date(dt.getTime() + (dt.getTimezoneOffset() * 60 * 1000));
在这两种情况下,输入字符串的时间都假定为 local 时间(这就是我们进行时区调整的原因)。 (我们需要字符串上的"Z"
,因为ES5规范中有一个轻微的错误,并表示在ISO-8601 [格式基于]离开的情况下,将时区保留为默认GMT关闭时区意味着当地时间.ES6规范修复了这一点,但这意味着现在,一些引擎做一件事,其他引擎做其他事情。)
这里是如何从Date
实例获取午夜后的分钟数:
var minutes = dt.getHours() * 60 + dt.getMinutes();
从那里,它的减法(从另一个减去一个日期& - 39分钟 - 从午夜开始),除法(/
运算符,得到小时)和余数({ {1}}运营商,在一小时内得到分钟数)。 : - )
或者,您可以使用像MomentJS这样的库来为您完成工作。但上述工作并不多。