1

我正在构建一个控件以允许我设置会议时间,并且我希望它用作默认值,当前时间四舍五入到最接近的 15 分钟间隔。因此,如果当前是 6:07,它将读取 6:15 作为开始时间。

有谁知道这可能是如何完成的,或者是否遇到过让我走上正轨的代码片段?

4

2 回答 2

2

尝试这个

var date:Date = new Date();
var min:Number = date.minutes;
var h:Number = date.hours;
min = min + (15 - min % 15);
h += min / 60;
min = min % 60;
date.hours = h;
date.minutes = min;
trace(date.toTimeString());
于 2009-09-18T11:23:32.397 回答
1

我发现 Amarghosh 的回答是,它并没有完全正确地四舍五入。示例:将 7:01 舍入为 7:15,而不是 7:00。它也不会处理日期的变化(例如将 23:50 舍入到第二天)等。

这将做你想做的事,同时处理不断变化的日子、月份和年份,而且数学有点简单:

protected function roundTimeToMinutes( date:Date, interval:int ):Date
{
    var time:Number=date.getTime();
    var roundNumerator=60000*interval; //there are 60000 milliseconds in a minute
    var newTime:Number=( Math.round( time / roundNumerator ) * roundNumerator );
    date.setTime(newTime);
    return date;
}
于 2009-12-12T04:06:03.613 回答