今天过去了多少秒?
重要程度: 5
写一个函数 getSecondsToday()
,返回今天已经过去了多少秒?
例如:如果现在是 10:00 am
,并且没有夏令时转换,那么:
getSecondsToday() == 36000 // (3600 * 10)
该函数应该在任意一天都能正确运行。那意味着,它不应具有“今天”的硬编码值。
为获取秒数,我们可以使用今天的日期和 00:00:00 这个时间创建一个日期,然后使用当前时间减去该时间。
不同之处在于,从今天之初开始算起的时间是以毫秒计算的,我们应该将其除以 1000,进而得到秒数:
function getSecondsToday() {
let now = new Date();
// 使用当前的 day/month/year 创建一个对象
let today = new Date(now.getFullYear(), now.getMonth(), now.getDate());
let diff = now - today; // ms difference
return Math.round(diff / 1000); // make seconds
}
alert( getSecondsToday() );
另一种解决方法是获取 hours/minutes/seconds,然后把它们转换为秒数:
function getSecondsToday() {
let d = new Date();
return d.getHours() * 3600 + d.getMinutes() * 60 + d.getSeconds();
};
alert( getSecondsToday() );