【已解决】微信小程序-苹果手机日期解析异常

这篇具有很好参考价值的文章主要介绍了【已解决】微信小程序-苹果手机日期解析异常。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在开发微信小程序时,使用了 uView 的 CountDown倒计时 组件和 uni.$u.timeFrom Api,后台传递了一个时间字符串,前台计算时间戳的差值,来显示还有多久开始,这个功能在模拟器和我自己手机(iphon13)上都是正常的,在提交测试之后,测试反馈(iphone12)日期显示异常,先后经历了三个版本的代码,最终解决了此问题。

1 遇到的异常情况

  • 还有 0天 0小时 开始
  • NaN年前

2 结论和解决方案

  • IOS 系统的部分版本不支持 yyyy-mm-dd 格式,需要将 - 替换为 /,即修改为 yyyy/mm/dd

  • IOS 系统的不同版本对 yyyy-mm-dd 格式的兼容性不同,iphone13 的 16.3 版本支持 yyyy-mm-dd

  • IOS 系统不支持日期的字符串拼接,如 new Date('2023-10-10 00:00:00').getTime(),如果需要设置年月日时分秒,可以使用 setHours 等方法文章来源地址https://www.toymoban.com/news/detail-724490.html

    const date = new Date("2023-10-10").getTime();
    date.setHours(0);
    

3 代码示例

// 项目开始时间,后台返回
const startTime = "2023-10-12";

// 第一版
// 效果:12异常,13正常
// iphone12 还有 0天 0小时 开始
// iphone13 还有 1天 8小时 开始
const beginTimeStamp = new Date(`${startTime} 00:00:00`).getTime();
const currentTimeStamp = Date.now();
const timePoint = beginTimeStamp - currentTimeStamp; // 传递给CountDown组件

// 第二版
// 效果:12正常,13异常
// iphone12 还有 1天 8小时 开始
// iphone13 还有 0天 0小时 开始
const timeStr = startTime.replace(/-/g, "/"); // IOS不支持日期中的-,需要将-替换为/
const beginTimeStamp = new Date(`${timeStr} 00:00:00`).getTime();
const currentTimeStamp = Date.now();
const timePoint = beginTimeStamp - currentTimeStamp;

// 第三版
// 效果:12和13都正常
// iphone12 还有 1天 8小时 开始
// iphone13 还有 1天 8小时 开始
const timeStr = startTime.replace(/-/g, "/"); // IOS不支持日期中的-,需要将-替换为/
const beginDate = new Date(timeStr);
beginDate.setHours(0); // IOS不支持字符串拼接,需要调用setHours方法
const currentTimeStamp = Date.now();
const timePoint = beginTimeStamp - currentTimeStamp;

到了这里,关于【已解决】微信小程序-苹果手机日期解析异常的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • uni_app 微信小程序 苹果手机 边框显示不全

    解决方案:

    2024年02月12日
    浏览(40)
  • ios系统(苹果手机)微信小程序canvas.draw不执行回调

    当canvas绘制图片完成之后,来执行draw的时候, 1.安卓手机不受影响,可以正常执行draw的回调函数 2.苹果手机在ios高版本系统上,则可能出现draw的回调函数不执行了。  比如以下代码: 之所以会出现这样的原因是:ios高版本系统 对于 canvas的元素要求是: canvas元素必须存在,如

    2024年02月03日
    浏览(32)
  • 微信小程序在苹果手机中打不开小程序页面,wx.agentConfig没有执行

    最近在写一个小程序,其中使用到了wx.agentConfig获取“launchMiniprogram”,打开小程序页面。 然后在安卓中可以正常打开,在苹果手机中打不开。 期间更换了n次引入的js,头大最后发现是授权的url在苹果手机和安卓中获取的不一样,导致页面授权签名报错40093 以下为简略代码 第

    2024年02月06日
    浏览(38)
  • 服务器更换ssl证书后,手机访问微信小程序异常

    单位的网站近期ssl证书到期,重新购买证书后,先前部署在服务器上面的微信小程序访问异常,通过在微信开放社区、百度、csdn各种搜索,最终确认问题原因,修改后解决,现对整个过程做一个梳理,做个总结。 单位的网站近期ssl证书到期,重新购买证书后,在堡塔linux服务

    2024年02月09日
    浏览(28)
  • 微信小程序解决地图定位功能异常

    报错:request:fail url not in domain list 解决方法: 开发者工具-本地设置:勾选【不校验合法域名..】这一项 解决方法: 开发版本/体验版本 :使用手机测试时,打开调试模式 正式版本 :在小程序后台配置地图api服务商的业务域名 注意:这里配置的域名一定要与项目中使用的地

    2024年02月13日
    浏览(29)
  • 微信小程序访问手机蓝牙需要用户授权解决办法

    小程序处理用户的个人信息,需要获取用户明示同意,平台计划 从2022年2月21日24时起对以下接口增加用户授权 : 访问蓝牙:调用wx.openBluetoothAdapter、wx.createBLEPeripheralServer,需要授权scope.bluetooth 添加通讯录联系人:调用wx.addPhoneContact,需要授权scope.addPhoneContact 添加日历事件

    2024年02月09日
    浏览(57)
  • 微信小程序真机调试异常cmdId 1006, errCode-50011-已解决

    cmdId 1006, errCode-50011 小程序在模拟器上预览没问题,真机调试和体验版首页打不开,点展开显示cmdId 1006, errCode-50011 查了下1006, 说是广告, 我没接广告,这个也不是错误码 1006 广告组件被驳回 你的广告正在被审核,无法展现广告 后来找到几个类似的帖子,得到了些启发  这

    2024年02月12日
    浏览(25)
  • 【微信小程序】从 npm 引入第三方依赖时提示依赖异常的解决方法

           微信小程序不允许使用 Node.js 的内建模块。但是部分第三方依赖(如 crypto-js)在运行时会尝试引入 Node.js 内建模块(实际非强制调用),这一举动被微信开发工具误以为是未知的依赖调用。 移除构建 npm 时生成的外部依赖项即可。 1. 找到并打开“/miniprogram_npm/crypto

    2024年02月15日
    浏览(33)
  • 关于微信小程序背景图手机上加载不出来问题的解决方案

    1.问题:平时在给背景图的时候大家的第一反应一定是在css中直接写background-image,直接就把图片当背景放在了那里,但是这样的方法在pc端还是可以的,在小程序端却存在着加载不出来的问题,现在我来给大家提供一个解决方法(插入图片的方法) 2.原理:一个大的父盒子,同时

    2024年02月04日
    浏览(62)
  • uni-app(微信小程序)自定义日期选择器和时间选择器,解决IOS端和安卓端显示不同问题

    原本用的原生组件picker,设置了开始时间和结束时间,安卓端可以显示可选日期时间部分,但是IOS显示的内容包括一整天时间和N个年,本来只需要选择其中七天,那么其他天不显示,IOS端可以滑到其他日期位置,但是会自己滚回来 IOS端: 安卓: 这里只需要八点后和19点前(

    2024年02月16日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包