我正在显示实时日期和时间,但出现错误 getDate is not a function
。
我收到这个错误是因为我这样添加了时区
var x = new Date().toLocaleString("en-US", {timeZone: "America/New_York"});
你能帮我解决这个问题吗?
function calculateUSATime() {
var refresh = 1000; // Refresh rate in milli seconds
mytime = setTimeout('currentUSATime()', refresh)
}
function currentUSATime() {
var x = new Date().toLocaleString("en-US", {
timeZone: "America/New_York"
});
var date = x.getDate();
var month = x.getMonth(); //Be careful! January is 0 not 1
var year = x.getFullYear();
document.getElementById('ct').innerHTML = date;
calculateUSATime();
}
<body onload=currentUSATime();>
<span id='ct'></span>
</body>
最佳答案
toLocaleString
将返回一个 String
。您可以再次将其传递给日期构造函数以获取 Date
的实例。根据MDN
The
toLocaleString()
method returns a string with a language sensitive representation of this date
var days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
function calculateUSATime() {
var refresh = 1000; // Refresh rate in milli seconds
mytime = setTimeout('currentUSATime()', refresh)
}
function currentUSATime() {
let str = new Date().toLocaleString("en-US", {
timeZone: "America/New_York"
})
var x = new Date(str);
var date = x.getDate();
var month = x.getMonth(); //Be careful! January is 0 not 1
var year = x.getFullYear();
document.getElementById('ct').innerHTML = days[x.getDay()]+ ' ' + x.toLocaleString();
calculateUSATime();
}
<body onload=currentUSATime();>
<span id='ct'></span>
</body>
您可以改进的另一件事是删除 calculateUSATime
并在 currentUSATime
中使用 setTimeout
。
function currentUSATime() {
let str = new Date().toLocaleString("en-US", {
timeZone: "America/New_York"
})
var x = new Date(str);
var date = x.getDate();
var month = x.getMonth(); //Be careful! January is 0 not 1
var year = x.getFullYear();
document.getElementById('ct').innerHTML = x;
var refresh = 1000; // Refresh rate in milli seconds
mytime = setTimeout(currentUSATime, refresh)
}
<body onload="currentUSATime();">
<span id='ct'></span>
</body>
关于javascript - 添加时区后为 "getDate is not a function",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55632141/