javascript - 在 ES 5 中使用字符串方法
问题描述
我无法在 ECMA 5 中使用一些字符串方法,例如:
->padStart();
->getHours();(different time formats)
我正在尝试使用字符串方法分别提取时间和小时,但它会引发类型错误。
var date = parseInt(reverseString(hexPayload.substring(0,8)),16).toString(10);
result.DateAndTime = new Date(date);
result.Volume1 = volume(reverseString(hexPayload.substring(18,26))) + 'meterCube' + date.getHours();
我可以在浏览器 javascript 中获得所需的输出。但不能将它用作基于 ES 5 的 otto javascript 引擎。任何人都可以建议我它是如何完成的或实现这一目标的替代方法。
解决方案
关于getHours
它不是String.prototype
方法,它是Date.prototype
方法。它是 JS 中最古老的方法https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getHours#Browser_compatibility。所以你的引擎必须支持。如果不让我们了解您正在使用的引擎。
在你的代码中
var date = parseInt(reverseString(hexPayload.substring(0,8)),16).toString(10);
result.DateAndTime = new Date(date);
result.Volume1 = volume(reverseString(hexPayload.substring(18,26))) + 'meterCube' + date.getHours();
在是数字不是日期。date.getHours()
_ 可能这就是你有错误的原因。date
关于padStart
,有一些 polyfills 你可以使用它们,或者复制。但需要在使用前进行设置。例如https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/padStart#Polyfill
推荐阅读
- c# - 使用 .NET Core 的任务状态始终 WaitForActivation
- node.js - 在nodejs中调用getToken时Google OAuth2客户端超时
- android - 替换后片段没有获得可访问性焦点
- java - 来自 JSP 的文本框值无法插入数据库
- javascript - 在 Laravel 中使用 React
- javascript - 使用 D3.js 在 SVG 中实现可滚动记录列表
- javascript - 在Javascript中按日期对未知数量的对象进行排序
- oracle - 删除分区和更新全局索引时存在错误:分区维护操作可能无法与其他操作组合
- java - 如何在 Thymeleaf/HTML 中使用带有 Java + Spring 的复选框?
- android - 带有 Retrofit API 的 x-csrf-tokens