javascript - 时间仅在 iPhone 上显示为 Nan
问题描述
我不知道为什么我time left
在观看时显示为 NaN
苹果手机
Chrome 中的移动模拟器显示工作正常
我什至尝试了我在 jsfiddle 中使用的相同代码的实验
https://jsfiddle.net/bheng/7w8cftyL/
它也在那里工作!
还有其他人也面临这个问题吗?
代码
<div class="timeLeft"></div>
function timeDiffCalc(dateFuture, dateNow) {
let diffInMilliSeconds = Math.abs(dateFuture - dateNow) / 1000;
const days = Math.floor(diffInMilliSeconds / 86400);
diffInMilliSeconds -= days * 86400;
console.log('calculated days', days);
const hours = Math.floor(diffInMilliSeconds / 3600) % 24;
diffInMilliSeconds -= hours * 3600;
console.log('calculated hours', hours);
const minutes = Math.floor(diffInMilliSeconds / 60) % 60;
diffInMilliSeconds -= minutes * 60;
console.log('minutes', minutes);
let difference = '';
if (days > 0) {
difference += (days === 1) ? `${days} day, ` : `${days} days, `;
}
difference += (hours === 0 || hours === 1) ? `${hours} hour, ` : `${hours} hours, `;
difference += (minutes === 0 || hours === 1) ? `${minutes} minutes` : `${minutes} minutes`;
return difference;
}
var timeLeft = timeDiffCalc(new Date('2021-02-17 20:44:50'), new Date());
$('.timeLeft').text(timeLeft + " more...");
解决方案
在T
时间之前用作时间指示器,如下所示
var timeLeft = timeDiffCalc(new Date('2021-02-17T20:44:50'), new Date());
您可以在 MDN 中查看更多日期创建选项:https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date#several_ways_to_create_a_date_object
更新:
根据作者的评论,日期是动态给出的。要插入提到的T
内容,您可以使用string.replace
如下:
var dateStr = '2021-02-17 20:44:50';
dateStr = dateStr.replace(' ', 'T');
var timeLeft = timeDiffCalc(new Date(dateStr), new Date());
推荐阅读
- android - Flutter google_sign_in 出现奇怪的问题 PlatformException(sign_in_failed, com.google.android.gms.common.api.ApiException: 10: , null)
- python - 如何在索引之间循环列表
- rust - 如何从 Rust 字符串创建 *mut u8?
- php - 简单的图像类不起作用,我做错了什么?
- jquery - JQuery Validation - 仅在存在错误时添加间距?
- python - 当从 HTML 上的表单传递变量时返回 TypeError: delete_user() 缺少 1 个必需的位置参数:'usr_name'
- flutter - Flutter 的 VS Code 主题编辑
- android - 从 Intent.ACTION_PICK 中选择多个图像时响应延迟
- java - 如何编写读取数组列表中特定内容并计算数组内容数量的方法
- android - 为什么 Google Ads 只会在发布版本上崩溃 Android 应用?