首页 > 解决方案 > 如何从日出和日落时间将其表示为白天或晚上?

问题描述

从一些 api 我得到日出和日落时间分别为 06:42 和 17:57。时间大于等于06:42必须显示“DAY”,大于等于17:57必须显示“EVENING”。怎么办?

应用程序.js

fetch(`${IP_LOCATION}&lat=${lat}&long=${lon}`)
  .then(res => res.json()).then(responseJson => {
    console.log('DATA', responseJson)
    try {
      this.setState({
        sunrise: responseJson.sunrise,
        sunset: responseJson.sunset,
      })

    } catch {
      toast.error('No Data Received')
    }

  });


render() {
      return (
        {console.log('sunrise', this.state.sunrise)}// returns 06:42
        {console.log('sunset', this.state.sunset)}// returns 17:57
        // How to display DAY and EVENING/NIGHT
)
} 

export default App

如上所示,我得到了日出和日落值。

标签: reactjs

解决方案


让我们首先将日出和日落作为 JavaScriptDate对象。

const sunrise = new Date(new Date().toLocaleDateString() + ' ' + this.state.sunrise); 
const sunset = new Date(new Date().toLocaleDateString() + ' ' + this.state.sunset); 

现在,让我们获取当前数据并进行检查!

const now = new Date();
const isLightOut = now > sunrise && now < sunset;

当然,就 React 而言,我们现在可以isLightOut根据需要使用我们的变量来渲染文本:

render() {
  return isLightOut ? "DAY" : "NIGHT";
}

推荐阅读