Javascript 黑色api未显示正确的时间

Javascript 黑色api未显示正确的时间,javascript,darksky,Javascript,Darksky,我使用Dark Sky API变量“time”检索unix时间戳,然后使用以下代码将其转换为小时: if(navigator.geolocation){ navigator.geolocation.getCurrentPosition(position => { long = position.coords.longitude; lat = position.coords.latitud

我使用Dark Sky API变量“time”检索unix时间戳,然后使用以下代码将其转换为小时:

        if(navigator.geolocation){
            navigator.geolocation.getCurrentPosition(position => {
                long = position.coords.longitude;
                lat = position.coords.latitude;

                const proxy = "https://cors-anywhere.herokuapp.com/";
    const api = `${proxy}https://api.darksky.net/forecast/7fa728a1a158d84bf2c85bbeb53ddaea/36.778259,-119.417931`;

                fetch(api)
                    .then(response => {
                        return response.json();
                    })
                    .then(data => {
                        /*console.log(data);*/
                        const {temperature, summary, icon, time} = data.currently;

                                //Get date from time variable
                                var date = new Date(time*1000);
                                // Get hours from date
                                var hours = date.getHours();
                                // Get minutes from date
                                var minutes = "0" + date.getMinutes();
                                // Get seconds from date
                                var seconds = "0" + date.getSeconds();
                                // Display time in 10:30:23 format
                                var formattedTime = hours + ':' + minutes.substr(-2) + ':' + seconds.substr(-2);

                                console.log(formattedTime);

                                //Check time
                                if (hours <= 19 && hours >= 7) {
                                //Day
                                } else {
                                //Night
                                }
});
if(navigator.geolocation){
navigator.geolocation.getCurrentPosition(位置=>{
long=position.coords.longitude;
纬度=位置坐标纬度;
常量代理=”https://cors-anywhere.herokuapp.com/";
常量api=`${proxy}https://api.darksky.net/forecast/7fa728a1a158d84bf2c85bbeb53ddaea/36.778259,-119.417931`;
获取(api)
。然后(响应=>{
返回response.json();
})
。然后(数据=>{
/*控制台日志(数据)*/

const{temperature,summary,icon,time}=data.current; //从时间变量获取日期 var日期=新日期(时间*1000); //从日期开始计算小时数 var hours=date.getHours(); //从约会开始算起 var minutes=“0”+date.getMinutes(); //从日期开始计算秒数 var seconds=“0”+date.getSeconds(); //以10:30:23格式显示时间 var formattedTime=hours+':'+分钟.substr(-2)+':'+秒.substr(-2); console.log(格式化时间); //检查时间 如果(小时=7){ //一天 }否则{ //夜 } });
其他一切工作正常,但仍无法在控制台中显示检索到的位置数据的正确时间。

根据:

其中包含多个数据,但在这种情况下,我们关心的是:

需要时区(如美国/纽约)

请求位置的IANA时区名称。用于 文本摘要,用于确定每小时和每日数据块的时间 对象开始


数据点对象 所需时间

此数据点开始的UNIX时间。分钟数据点为 始终与每分钟的顶部对齐,每小时数据点对象 小时的顶部和每日数据点对象到午夜 一天,都根据当地时区

因此您读取的时间是机器时间,这类时间是全局时间,而不是特定时区的时间,因此如果需要显示检索位置的正确时间,则需要在javascript中使用将其转换为区域设置时间

constproxy=”https://cors-anywhere.herokuapp.com/";
常量api=`${proxy}https://api.darksky.net/forecast/7fa728a1a158d84bf2c85bbeb53ddaea/36.778259,-119.417931`;
获取(api)
。然后(响应=>{
返回response.json();
})
。然后(数据=>{
/*控制台日志(数据)*/
const{temperature,summary,icon,time}=data.current;
//使用data.timezone显示检索到的位置的正确时间
//以24:00:00格式获取时间
var formattedTime=新日期(time*1000).toLocaleTimeString(“en-US”{timeZone:data.timeZone,hour12:false});
//以12 00:00:00 AM/PM格式获取时间
var formattedTime=新日期(time*1000).toLocaleTimeString(“en-US”,{timeZone:data.timeZone});
console.log(格式化时间);

})
这是时间的值时间与假设的时间之比是多少?它应该显示darksky api从中检索数据的位置的正确时间。使用经度和纬度。预计的时间是多少,得到的时间是多少?您能告诉exmaple吗?const{temperature,summary,icon,time}=data.current;