1、后台接入第三方平台获取最近的天气预报信息
2、将数据返回给前端,此时返回信息的是最近所有的天气预报信息 例如(当前8月3号10点整 返回的会从当前8月3号10点整-8月5号10点整中间所有时间段的天气 注意返回的均是整点信息)
3、获取当前时间戳,判别时间戳是否在返回的信息中,返回对应的天气信息
4、小程序前端渲染需要以循环的方式取值,因为天气信息返回是一个二维对象
出现问题
1、后台返回的数据为整点时间段信息,而当前时间戳是具体时间段,所以这里在测试的时候,写了整点时间戳去测试数据。但是我们实际场景中,一定是以当前具体时间去获取数据。
举例场景:后台返回来数据是8月3日10点的数据,我们可以在10点获取到数据后,但在10点01分就失去数据,因为当前时间戳不在返回的数据里面。
预期效果:数据应该是保存一个小时,到了下个时间段自动刷新。
解决思路:以时间日期的格式去判别。当前时间是在那个整点
首先获取当前时间戳。将其转换成日期格式。小程序直接转换的格式是 年/月/日 时:分:秒
而天气预报返回的日期格式是 年-月-日 时:分:秒:
所以第二步 需要去util 文件里面封装一个重写时间日期格式函数文件,将我们的当前时间格式转换成于天气预报返回的日期格式一样
第三步 比对时间数据 举例当前返回天气最新时间是 2022-8-3 10:00:00 我们的当前时间为 2022-8-3 10:30:00 我们只需要比对 (年-月-日 时)的数据一致就能获得数据
1、后台接入第三平台。根据当前时间戳返回对应天气信息
2、前端直接获取接口数据,进行渲染
是不是第二种是实现更加的简便了。这里我尝试过着两种方案。在第一种花费了较多的时间。然后豁然开朗。其实完全就可以在后台判别一下就好了。所以贴出来。避免大家踩坑
推荐使用第二种,第一种方法开发时候发现需要单独封装在util文件,只做一种场景的时候还是ok的,但是个人开发测试时候,出现了冲突,原因为我在做短信发送时候 延迟发送,也是需要时间戳,这里的时间函数重写之后。很难去解决。