【发布时间】:2020-08-19 15:07:36
【问题描述】:
我正在尝试比较两个日期,它们在除 iPhone 之外的所有设备上都能正常工作。它在 iPhone 上发出错误警报。
function play_time() {
var crntTime;
var today = new Date();
var formattedTime = today.getHours() + ":" + today.getMinutes() + ":" + today.getSeconds();
var dd = today.getDate();
var mm = today.getMonth() + 1;
var yyyy = today.getFullYear();
if (dd < 10) {
dd = '0' + dd;
}
if (mm < 10) {
mm = '0' + mm;
}
today = yyyy + '-' + mm + '-' + dd;
var crntDatetime = `${today} ${formattedTime}`;
crntTime = new Date(crntDatetime).getTime();
var check = '2020-08-18 23:14:07';
var gameTime = new Date(check).getTime();
if (crntTime <= gameTime) {
alert('Play');
} else {
alert('Later');
}
}
<button onClick="play_time();"> show Time </button>
【问题讨论】:
-
Date 构造函数因平台而异。您传递的是 iOS 代码无法识别的格式。
-
@Pointy 我应该使用哪种格式?
-
见克劳德先生的回答。 ISO标准以外的任何东西都是有风险的。另一种选择是使用像 Moment 这样的库,它允许您明确地告诉它您的日期格式的含义。
-
您的格式化时间也没有实际格式化。在我看来,你也需要填充它。最好使用正确的日期:
const now = new Date().getTime(); const check = new Date(yyyy,mm-1,dd,hh,min,ss,0).getTime(); if (now <= check) ... -
@mplungjan 现在可以使用了,谢谢。
标签: javascript ios iphone