0
<script>
var currentTime = new Date();

var futureTime = new Date(currentTime.getTime());
futureTime.setMinutes(futureTime.getMinutes() + 10);

var pastTime = new Date(currentTime.getTime());
pastTime.setMinutes(pastTime.getMinutes() - 50);
</script>

我要做的就是如果当前时间是6:00PM,则显示在此之前的 50 分钟,5:10PM并且我还尝试在当前时间之后的 10 分钟显示另一个时间,即6:10PM.. 我该怎么做所以它是完全格式化为X:XXPM?

我将上面的代码放入我的页面中,我什么也没看到..

4

3 回答 3

1
document.write(currentTime + '<br>' + futureTime + '<br>' + pastTime);

或者

var str = currentTime + '<br>' + futureTime + '<br>' + pastTime;
document.getElementById('myDiv').innerHTML = str;

或者

var str = currentTime + '<br>' + futureTime + '<br>' + pastTime;
document.getElementById('myDiv').appendChild(str);

或者

document.getElementById('myDiv1').appendChild(pastTime);
document.getElementById('myDiv2').appendChild(currentTime);
document.getElementById('myDiv3').appendChild(futureTime);

你的 html 看起来像

<div id='myDiv1'></div>
<div id='myDiv2'></div>
<div id='myDiv3'></div>

更新

格式化日期 - 这是一个不同的问题 - 并且已经被无数帖子回答。

这是一个很棒的。

或者

使用 JavaScript 格式化时间和日期的 10 种方法。

笔记

Jason Sperske 发表了我无法忽视的评论 - moment.js太棒了。

于 2013-10-09T16:55:48.187 回答
0

您需要将值发送到一些 HTML 元素:

HTML:

<p id="future"></p>
<p id="past"></p>

Javascript:

function formatTime(dateObj){

    var dateString = "";
    var hour = dateObj.getHours();  
    var minutes = dateObj.getMinutes();
    var pm = false;

    if (hour > 12)
        pm = true;

    if (pm === true){
        var pmHour = (hour>=13) ? hour-12:hour;
        dateString += pmHour.toString();
        dateString += ":";
        dateString += minutes.toString();
        dateString += " pm";
    }

    else{
        dateString += hour.toString();
        dateString += ":";
        dateString += minutes.toString();
        dateString += " am";
    }

    return dateString;
}

var currentTime = new Date();

var futureTime = new Date(currentTime.getTime());
futureTime.setMinutes(futureTime.getMinutes() + 10);
var f = document.getElementById("future");
f.innerHTML = formatTime(futureTime);

var pastTime = new Date(currentTime.getTime());
pastTime.setMinutes(pastTime.getMinutes() - 50);
var f = document.getElementById("past");
f.innerHTML = formatTime(pastTime);

JSFiddle 示例

于 2013-10-09T16:57:32.703 回答
0

这是解决方案:

var currentTime = new Date();

var futureTime = new Date(currentTime.getTime());
futureTime.setMinutes(futureTime.getMinutes() + 10);

var pastTime = new Date(currentTime.getTime());
pastTime.setMinutes(pastTime.getMinutes() - 50);

function formatAMPM(date) {
  var hours = date.getHours();
  var minutes = date.getMinutes();
  var ampm = hours >= 12 ? 'PM' : 'AM';
  hours = hours % 12;
  hours = hours ? hours : 12; // the hour '0' should be '12'
  minutes = minutes < 10 ? '0'+minutes : minutes;
  var strTime = hours + ':' + minutes + ' ' + ampm;
  return strTime;
}


alert('Current Time: ' + formatAMPM(currentTime));

alert('Future Time: ' + formatAMPM(futureTime));

alert('Past Time: ' + formatAMPM(pastTime));

在这里试试:http: //jsfiddle.net/atheos/Wx2vw/

于 2013-10-09T16:59:53.227 回答