两小时之前的时间
今天在界面上一个选择时间段控件求值时,要求获得当前时间以及当前时间两小时之前的时间。 在javaScript里该怎么实现呢?
javaScript中自带的new Date()能够获取当前时间。
一开始的想法是,用
var date=new Date().getDate();
来获取当前时间的小时数,然后再减去两小时,这样可以计算出想要的结果,不过需要很多的判断;比如,减去两小时后,恰好超过0这个临界值,而到了昨天;而昨天也可以是上个月,上个月的天数又要重新计算。这样侍很麻烦。
好的方法是免去这些判断步骤,且看下面的有代码
var now = new Date();
var start = new Date(0, 0, 0, 0, 0, 0, 0); //注意,这里有七位,最后一位为毫秒
//当前时间和最小时间的差值,以毫秒为单位;那么两个小时之前时间与最小时间的毫秒差自然比现在的少 3600 * 1000 * 2
var millis = now - start - 3600 * 1000 * 2;
var twoHoursAgo = new Date(0, 0, 0, 0, 0, 0, millis);
当前时间的UTC时间
var time = new Date();
var utcSecond = time.getTimezoneOffset(); //得到当前时间与当前UTC时间的分种差
var interval = time - new Date(0, 0, 0, 0, 0, 0, 0) + utcSecond * 60000;
var utcTime = new Date(0, 0, 0, 0, 0, 0, interval);