javascript - 未捕获的类型错误:**now.toUTCString** 不是 HTMLButtonElement 的函数
问题描述
当我不添加时区时,JS 运行良好,但是当我试图呼应巴巴多斯时区时,我收到以下与 now.toUTCString 相关的错误。我该如何解决?
未捕获的TypeError:now.toUTCString不是 HTMLButtonElement 中的函数。(index.js:24)
const txtTrollName = document.getElementById('txtTrollName');
const txtTrollMsg = document.getElementById('txtTrollMsg');
const btnNewTrollMsg = document.getElementById('btnNewTrollMsg');
function updateTrollbox(trollPost) {
var trollData = '<p><b>' + trollPost.troll;
trollData += '</b> said: ' + trollPost.message;
trollData += ' - <small>' + trollPost.date + '</small><p>';
// inject into HTML list element
var currentTrollbox = document.getElementById('trollbox').innerHTML;
document.getElementById('trollbox').innerHTML = currentTrollbox + trollData;
}
// new trollbox entry
btnNewTrollMsg.addEventListener('click', e => {
const troll = txtTrollName.value;
const msg = txtTrollMsg.value;
// const now = new Date();
const now = new Date().toLocaleString('en-US', { timeZone: 'America/Barbados' });
const trollPost = {
troll: troll,
message: msg,
date: now.toUTCString()
};
// update posts
updateTrollbox(trollPost);
// clear textbox
document.getElementById('txtTrollName').value = '';
document.getElementById('txtTrollMsg').value = '';
console.clear();
});
解决方案
这是因为 const now = new Date().toLocaleString 已经将其转换为字符串。您正在尝试对字符串使用 toUTCString 方法。您应该对日期对象应用 toUTCString() 方法。
推荐阅读
- sql - SQL从3个值的计算中得到最小值
- html - 如何划分
分成多个部分? - python - 如何将中性情绪添加到经过训练的数据集中?使用 sklearn 和 nltk
- laravel - Laravel 7 迁移错误:外键约束形成错误
- python - Python/Pandas:将多个 CSV 文件转换为具有联合和有序标题并填充缺失的数据
- fortran - 当 fortran 代码读取 linux 集群上的文件时发生 SIGBUS
- amazon-s3 - Strapi 文件上传在生产中不起作用
- php - Vue 组件在 laravel 6.18.16 中未显示或起床
- asp.net-core - 在 asp.net core 中加密和解密部分文件内容
- python - flask.jsonify 返回带有方括号而不是大括号的数组