首页 > 解决方案 > 用我的 HTML 时钟(-9 小时)格式化中国的时间,同时保持非军事时间?

问题描述

请参阅我执行 getHours 和 -9 小时的代码的第 6 行。我在加州,想花时间在中国。问题是当我进入中国时间的凌晨时,我得到一个-(例如:-1:54 AM)。如何修改代码以防止这种情况发生?注意我想保持 12 小时的时间格式,以避免时间显示这个 - 标志。

<html>
<head>
<script language='javascript' type='text/javascript'>
function displayClock() {
var digital = new Date();
var hours = digital.getHours()-9;
var minutes = digital.getMinutes();
var seconds = digital.getSeconds();
var amOrPm = 'AM';
if (hours > 11) amOrPm = 'PM';
if (hours > 12) hours = hours - 12;
if (hours == 0) hours = 12;
if (minutes <= 9) minutes = '0' + minutes;
if (seconds <= 9) seconds = '0' + seconds;
dispTime = '<b>'+hours + ':' + minutes + ':' + seconds + ' ' + amOrPm+'</b>';
document.getElementById('time').innerHTML = dispTime;
setTimeout('displayClock()', 1000);
}
</script>
</head>

<font color="gray">
<span style="font-size: 12pt">

<body style='font size:24; face:Arial;background-color:rgb(255,255,255);margin-left: 0px;margin-top: 0px;margin-right: 0px;margin-bottom: 0px;text-align:left; border:0; margin:0; padding:0' onload='displayClock()'>
<div id='time'></div>
</body>
</html>

标签: javascripthtml

解决方案


代替

var hours = digital.getHours()-9;

你可以让日期算术为你做:

digital.setHours(digital.getHours()-9);
var hours = digital.getHours();

推荐阅读