我是 JavaScript 的新手,但需要运行检查以确保它是日光。我正在使用雅虎的天气 API 来提取日出和日落。对于将其结果与当前时间进行比较的最佳方法,我只是有点困惑。
我很困惑,因为它返回的时间类似于日落:'9:01 pm'。 bsince 有一个 PM 它是文本。我想不出将它与当前时间进行比较的好方法...RegExp,然后转换为整数?
解决此问题的最佳方法是什么,为什么(抱歉,我正在尝试学习)?
在此先感谢您的帮助。
最佳答案
使用来自 yahoo 的 api 的信息创建一个新的 Date(),然后将 Date.now() 与 sunsetDate.getTime() 和 sunriseDate.getTime() 进行比较。
将今天的日期以 mm/dd/yyyy 格式传递给 Date 构造函数,时间为“9:01 pm”,将为您提供一个有效日期。
var today = new Date();
today = [today.getMonth()+1, today.getDate(), today.getFullYear()].join('/');
var yahooSunrise = '5:45 am';
var yahooSunset = '9:01 pm';
var sunrise = new Date(today + ' ' + yahooSunrise).getTime();
var sunset = new Date(today + ' ' + yahooSunset).getTime();
var now = Date.now();
var isDaylight = (now > sunrise && now < sunset);
关于JavaScript 时间问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6764866/