我發現了很多插件,例如this這種功能的插件,但我一直沒有找到能夠轉換時間間隔的字符串(「 2分鐘「,」10秒「,」1小時和4分鐘「等)以秒爲單位的時間。Javascript:轉換一個字符串,即。 「1小時2分鐘」以秒爲單位的時間
你知道的任何想法或插件?謝謝。
我發現了很多插件,例如this這種功能的插件,但我一直沒有找到能夠轉換時間間隔的字符串(「 2分鐘「,」10秒「,」1小時和4分鐘「等)以秒爲單位的時間。Javascript:轉換一個字符串,即。 「1小時2分鐘」以秒爲單位的時間
你知道的任何想法或插件?謝謝。
一旦您決定了格式,您需要編寫一個腳本,將您的時間格式轉換爲標準格式,或者只是從格式中提取基本數字。
之後,你可以使用日期構造解析的日期,然後寫從的getTime()方法得到秒
var d=new Date("October 12, 1987 10:23:00");
document.write(d.getTime() + " milliseconds since 1970/01/01");
我會寫反覆匹配「(digit+) (timeUnit)
」並執行功能以毫秒爲單位的算術,因爲它們是更常見的單位。事情是這樣的:
var timespanMillis = (function() {
var tMillis = {
second: 1000,
min: 60 * 1000,
minute: 60 * 1000,
hour: 60 * 60 * 1000 // etc.
};
return function(s) {
var regex = /(\d+)\s*(second|min|minute|hour)/g, ms=0, m, x;
while (m = regex(s)) {
x = Number(m[1]) * (tMillis[m[2]]||0);
ms += x;
}
return x ? ms : NaN;
};
})();
timespanMillis("2 mins"); // => 120000
timespanMillis("10 seconds"); // => 10000
timespanMillis("1 hour and 4 minutes"); // => 3840000
timespanMillis("Foobar"); // => NaN
關鍵是要保持tMillis查找對象同步與正則表達式,但它不應該太硬;例如,您可以通過將tMillis的屬性作爲源字符串來構造正則表達式。
你問一些像PHP的strtotime()函數? – 2011-04-24 17:56:12
格式是自由形式還是有可能的格式的集合列表? – 2011-04-24 18:10:15
你不能自己創建這個功能嗎?我的意思是,這很容易做到。 – mattsven 2011-04-24 18:12:02