在我的程序中,我传递clientId
new Date.valueOf()
作为临时ID,服务器可能会或可能不会传回ID,如果它传回了ID,那么它就赢了是一个有效的日期。
我想检查传回的id是否为有效日期,如何将valueOf转换回日期以查看它是否为有效日期?
var basicDate = document.getElementById("todaysDate");
var valueDate = document.getElementById("todaysDateValueOf");
var converted = document.getElementById("todaysDateValueOfConvertedBack");
basicDate.innerHTML = Date();//Tue Mar 06 2018 15:48:42 GMT-0700 (Mountain Standard Time)
valueDate.innerHTML = new Date().valueOf();//1520376522243
converted.innerHTML = new Date(valueDate.innerHTML);//invalid date

<div id="todaysDate"></div>
<div id="todaysDateValueOf"></div>
<div id="todaysDateValueOfConvertedBack"></div>
&#13;
答案 0 :(得分:1)
问题源于您将结果放入DOM元素,其中数据转换为字符串。当您将数据拉出并尝试将其传递给Date()
构造函数时,它需要一个数字,但您要为其提供转换后的字符串。将字符串转换为数字然后就可以了。
更好的方法是将日期直接存储在变量中,然后从变量中的值填充DOM元素。这使您可以在需要执行Date
工作时直接使用变量(这些变量不会将其数据转换为字符串)。
<强>供参考:强>
Date()
而不是new Date()
即可
一个问题。将Date
作为函数而不是作为函数调用时
构造函数,它返回表示当前时间的String
(世界标准时间)。但是,当Date
作为新表达式的一部分被调用时,它
是一个构造函数:它初始化新创建的对象。.innerHTML
不包含HTML。 .textContent
是用于获取原始文本的内容
一个元素。事实上,没有必要让元素妨碍
这个。当你把它们拉直时,它起作用:
var basicDate = document.getElementById("todaysDate");
var valueDate = document.getElementById("todaysDateValueOf");
var converted = document.getElementById("todaysDateValueOfConvertedBack");
// Get dates but assign directly to variables to avoid implicit conversions:
var currentDate = new Date();
var valueOfDate = currentDate.valueOf();
var reconstructedDate = new Date(valueOfDate);
basicDate.textContent = currentDate
valueDate.textContent = valueOfDate;
converted.textContent = new Date(valueOfDate);
console.log(currentDate);
console.log(valueOfDate);
console.log(reconstructedDate);
&#13;
<div id="todaysDate"></div>
<div id="todaysDateValueOf"></div>
<div id="todaysDateValueOfConvertedBack"></div>
&#13;