我需要做最简单的事情,输入一个输入日期/时间,并写出直到该时间的小时:分钟:秒。我还没弄清楚。我什至尝试使用Datejs很棒,但是似乎没有内置此功能。
时间将在0分钟-> 20分钟范围内
谢谢!
不要为简单的事情而烦恼图书馆。无论是否使用库,您都必须知道输入日期字符串的格式,因此假设使用ISO8601(例如2013-02-08T08:34:15Z),您可以执行以下操作:
// Convert string in ISO8601 format to date object
// e.g. 2013-02-08T02:40:00Z
//
function isoToObj(s) {
var b = s.split(/[-TZ:]/i);
return new Date(Date.UTC(b[0], --b[1], b[2], b[3], b[4], b[5]));
}
function timeToGo(s) {
// Utility to add leading zero
function z(n) {
return (n < 10? '0' : '') + n;
}
// Convert string to date object
var d = isoToObj(s);
var diff = d - new Date();
// Allow for previous times
var sign = diff < 0? '-' : '';
diff = Math.abs(diff);
// Get time components
var hours = diff/3.6e6 | 0;
var mins = diff%3.6e6 / 6e4 | 0;
var secs = Math.round(diff%6e4 / 1e3);
// Return formatted string
return sign + z(hours) + ':' + z(mins) + ':' + z(secs);
}
Run Code Online (Sandbox Code Playgroud)
您可能需要使用将字符串转换为日期的函数,但不要太多。无论如何,都应该提供UTC时间字符串,除非可以确定客户端的本地时间设置为提供的datetime值的时区。
| 归档时间: |
|
| 查看次数: |
2359 次 |
| 最近记录: |