在 javascript 中获取准确时间
get exact time in javascript
如何获得javascript的准确时间?例如,当你执行你会得到的代码时(2016-02-11 03:11:22:33)。
注意: 教程那么多,但是其中 none 给了你当前时间的毫秒。
这个 function
应该做到:
function getTime(input) {
var date = input ? new Date(input) : new Date();
return {
hours : date.getHours(),
minutes : date.getMinutes(),
seconds : date.getSeconds(),
milliseconds : date.getMilliseconds()
}
}
如果我现在 运行 getTime()
(20:52:49 200ms),我会得到一个具有以下属性的对象:
{
hours: 20,
minutes: 52,
seconds: 49,
milliseconds: 200
}
如果您希望输出为字符串而不是对象,也可以使用此函数:
var getTimeString = function(input, separator) {
var pad = function(input) {return input < 10 ? "0" + input : input;};
var date = input ? new Date(input) : new Date();
return [
pad(date.getHours()),
pad(date.getMinutes()),
pad(date.getSeconds()),
date.getMilliseconds()
].join(typeof separator !== 'undefined' ? separator : ':' );
}
如果我现在 运行 getTimeString()
(20:52:49 200ms),我会得到这个字符串:
20:52:49:200
另见 this Fiddle。
扩展 John 的想法,您可以在 getTime
函数中添加配置选项,例如时间是否为 24 小时,是否为 UTC。
var now = new Date();
document.body.innerHTML = 'Local: ' + format(getTime(now, true, false)) + '\n';
document.body.innerHTML += 'UTC: ' + format(getTime(now, true, true));
/**
* Returns an object with time information for a given Date object.<p>
* @param date {Date} A date object used to retrieve information.
* @return Returns an object containg hours, minutes, seconds,
* and milliseconds for the supplied date.
*/
function getTime(date, is24Hour, isUTC) {
var hour = isUTC ? date.getUTCHours() : date.getHours();
var meridiem = hour < 12 ? 'AM' : 'PM';
hour = is24Hour ? hour % 12 : hour;
hour = hour === 0 ? 12 : hour;
var data = {
hours : hour,
minutes : isUTC ? date.getUTCMinutes() : date.getMinutes(),
seconds : isUTC ? date.getUTCSeconds() : date.getSeconds(),
milliseconds : isUTC ? date.getUTCMilliseconds() : date.getMilliseconds(),
is24Hour : is24Hour,
isUTC : isUTC
};
if (is24Hour) {
data.meridiem = meridiem;
}
return data;
}
function format(time) {
function pad(val, str) { return ('' + str + val).substr(-str.length); }
return pad(time.hours, '00') + ':' +
pad(time.minutes, '00') + ':' +
pad(time.seconds, '00') + '.' +
pad(time.milliseconds, '000') + ' ' +
time.meridiem || '';
}
body { white-space: pre; font-family: monospace; }
如何获得javascript的准确时间?例如,当你执行你会得到的代码时(2016-02-11 03:11:22:33)。
注意: 教程那么多,但是其中 none 给了你当前时间的毫秒。
这个 function
应该做到:
function getTime(input) {
var date = input ? new Date(input) : new Date();
return {
hours : date.getHours(),
minutes : date.getMinutes(),
seconds : date.getSeconds(),
milliseconds : date.getMilliseconds()
}
}
如果我现在 运行 getTime()
(20:52:49 200ms),我会得到一个具有以下属性的对象:
{
hours: 20,
minutes: 52,
seconds: 49,
milliseconds: 200
}
如果您希望输出为字符串而不是对象,也可以使用此函数:
var getTimeString = function(input, separator) {
var pad = function(input) {return input < 10 ? "0" + input : input;};
var date = input ? new Date(input) : new Date();
return [
pad(date.getHours()),
pad(date.getMinutes()),
pad(date.getSeconds()),
date.getMilliseconds()
].join(typeof separator !== 'undefined' ? separator : ':' );
}
如果我现在 运行 getTimeString()
(20:52:49 200ms),我会得到这个字符串:
20:52:49:200
另见 this Fiddle。
扩展 John 的想法,您可以在 getTime
函数中添加配置选项,例如时间是否为 24 小时,是否为 UTC。
var now = new Date();
document.body.innerHTML = 'Local: ' + format(getTime(now, true, false)) + '\n';
document.body.innerHTML += 'UTC: ' + format(getTime(now, true, true));
/**
* Returns an object with time information for a given Date object.<p>
* @param date {Date} A date object used to retrieve information.
* @return Returns an object containg hours, minutes, seconds,
* and milliseconds for the supplied date.
*/
function getTime(date, is24Hour, isUTC) {
var hour = isUTC ? date.getUTCHours() : date.getHours();
var meridiem = hour < 12 ? 'AM' : 'PM';
hour = is24Hour ? hour % 12 : hour;
hour = hour === 0 ? 12 : hour;
var data = {
hours : hour,
minutes : isUTC ? date.getUTCMinutes() : date.getMinutes(),
seconds : isUTC ? date.getUTCSeconds() : date.getSeconds(),
milliseconds : isUTC ? date.getUTCMilliseconds() : date.getMilliseconds(),
is24Hour : is24Hour,
isUTC : isUTC
};
if (is24Hour) {
data.meridiem = meridiem;
}
return data;
}
function format(time) {
function pad(val, str) { return ('' + str + val).substr(-str.length); }
return pad(time.hours, '00') + ':' +
pad(time.minutes, '00') + ':' +
pad(time.seconds, '00') + '.' +
pad(time.milliseconds, '000') + ' ' +
time.meridiem || '';
}
body { white-space: pre; font-family: monospace; }