我需要得到当地时间。我创建了这个脚本,但是,例如,在意大利(我住的地方),警报显示7而不是9.为什么?
var time = new Date().getTime();
var seconds = time / 1000;
seconds = seconds % 86400;
hours = parseInt(seconds / 3600);
alert(hours);
答案 0 :(得分:6)
因为getTime
以毫秒为单位返回时间戳。时间戳与时区无关。使用getTimezoneOffset()
获取与UTC相关的偏移量,并添加它。
答案 1 :(得分:2)
new Date().getHours()
将为您提供当地时间,无需调整。
new Date().getTimezoneOffset()
将为您提供用户区域设置中UTC的分钟数。
请注意,UNIX时间戳测量自UNIX纪元以来的秒数,就像每天正好是3600 * 24秒一样。这允许你在大多数日子里得到分区和模数的时间,但是如果你的时间戳早于最新的leap second,并且你尝试用它做一些简单的数学运算,那么结果将不准确。
答案 2 :(得分:0)
DEMO:http://jsfiddle.net/yk3wkcr8/
var currentTime = new Date();
var h = currentTime.getHours();
var m = currentTime.getMinutes();
var s = currentTime.getSeconds();
alert(h);
alert(m);
alert(s);
答案 3 :(得分:0)
如果您想要一个示例,请尝试以下操作:Fiddle
它使用完整数组,包括秒,分钟,小时,日期,日期和年份。
BTW你可以使用getHours();其次是其他人。
var d = new Date(),
hours = d.getHours(),
hour = (hours - 12),
year = d.getFullYear(),
second = d.getSeconds(),
minute = d.getMinutes();
alert (hour + ":" + minute + ":" + second);
等等。
答案 4 :(得分:-1)
你可以试试这个:
new Date().toLocaleString()
它会给你类似的东西:
"4/16/2015, 9:14:53 AM"
如果您只需要获取时间戳,那么您可以将结果字符串拆分为数组并从数组中获取第二项:
new Date().toLocaleString().split(',')[1]
如果你只需要几小时就可以了:
new Date().getHours()