谁能解释一下 Javascript 在那里做什么?
为什么我必须将毫秒除以 1 才能转换日期?
d1=new Date(board.resultsbox.value/1);
d2=new Date(board.resultsbox.value);
board.resultsbox1.value=d1; //Fri Nov 01 2013 00:30:00 GMT+0100 (CET)
board.resultsbox2.value=d2; //Invalid Date
谢谢,周末愉快。
<html>
<head>
<title>calculator based on javascript.</title>
</head>
<body>
<form name="board" id="board">
<input type="input" id="resultsbox" value="1383262200000">
<input type="input" id="resultsbox1">
<input type="input" id="resultsbox2">
</form>
<input type="button" onclick="
d1=new Date(board.resultsbox.value/1);
d2=new Date(board.resultsbox.value);
board.resultsbox1.value=d1;
board.resultsbox2.value=d2;" style="height: 80px;" value="=">
</body>
</html>
最佳答案
与人们可能认为的不同,这里转换不是问题,格式才是问题。
board.resultsbox.value
是一个 String
这是可以接受的,因为新的 Date()具有以下有效参数集:
new Date();
new Date(value);
new Date(dateString);
new Date(year, monthIndex [, day [, hours [, minutes [, seconds [, milliseconds]]]]]);
但显然,board.resultsbox.value
是一个表示数字时间戳的字符串。 new Date(dateString)
失败,因为它接受可由 Date.parse() 解析的字符串(示例 '01 Jan 1970 00:00:00 GMT'
)同时需要将数字时间戳作为 Number
传递。
除法是将 String
转换为 Number
的一种隐式方式。因此,正确的格式和参数集得到满足并且 new Date()
起作用。
关于Javascript:转换日期或除以 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50531398/