我想做的是:显示白天太阳高度的图形(看起来有点像正弦曲线)您应该能够选择一个位置(纬度&经度)和日期,图形应按此显示
我导入了一个库,它输出给定时间和日期在给定位置的高度。
// The date is passed from another component using react-date-picker. The date looks like this:
Sat Mar 13 2021 13:54:56 GMT+0100
var altitude = SunCalc.getPosition(date, 10.757, 59.91).altitude * 180 / Math.PI
问题:这只显示了13(下午1点)的高度,但是我想获得一天中每一个小时的值。
所以我想我可以用for循环。比如:
let altitudes = []
for(let i; i<24; i++){
let date = 'Sat Mar 13 2021 {i}:00:00 GMT+0100'
var altitude = SunCalc.getPosition(date, 10.757, 59.91).altitude * 180 / Math.PI
altitudes.push(altitude)
}
(这不是所有的代码,只是让你有一个想法)
然而,这看起来真的很糟糕,因为我必须将日期转换为字符串,然后对其进行操作。有没有更聪明的办法?
似乎i
值没有按照您的逻辑更新。
'Sat Mar 13 2021 {i}:00:00 GMT+0100'
尝试使用js字符串插值
`Sat Mar 13 2021 ${i}:00:00 GMT+0100`
或字符串concat
'Sat Mar 13 2021 '+ i + ':00:00 GMT+0100'
不确定它能解决你的问题
您不需要将其转换为字符串,尽管它可以工作。
直接使用Date内置方法,如setHours
let altitudes = []
for(let i; i < 24; i++){
date.setHours(i)
var altitude = SunCalc.getPosition(date, 10.757, 59.91).altitude * 180 / Math.PI
altitudes.push(altitude)
}