Javascript:转换日期或除以1
有人能解释一下Javascript在那里做什么吗 为什么我必须将ms除以1来转换日期Javascript:转换日期或除以1,javascript,date,Javascript,Date,有人能解释一下Javascript在那里做什么吗 为什么我必须将ms除以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 谢谢,祝你周末愉快 基于jav
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
谢谢,祝你周末愉快
基于javascript的计算器。
这个除法是将字符串转换成数字的一种方法(实际上很奇怪)。
我假设您的值是以字符串形式出现的,要作为日期种子进行解析,它需要是一个数字文本字段返回的值是一个字符串,您可以将值传递给
新日期
的构造函数需要一个数字
在javascipt中,有几种将字符串转换为数字的方法,其中一些是:
parseInt
+“1234”
“1234”/1
这段代码的作者似乎选择了后一个例子,因为board.resultsbox.value是一个字符串值。当您添加数学运算(在本例中为除以1)时,它会自动转换为
Date
构造函数可接受的数值。
使用parseInt
函数可以实现相同(但更干净)的效果,如:
var millis = parseInt(board.resultsbox.value);
您可以阅读有关Date
constructor的更多信息
此外,还有大量关于如何将字符串转换为数字的信息,例如如下所示。您需要将其解析为数字,然后将其转换为日期:
基于javascript的计算器。
与人们的想法不同,这里的问题不在于演员阵容,而在于格式
board.resultsbox.value
是一个字符串
这是可以接受的,因为new具有以下有效参数集:
new Date();
new Date(value);
new Date(dateString);
new Date(year, monthIndex [, day [, hours [, minutes [, seconds [, milliseconds]]]]]);
但显然,board.resultsbox.value
是一个表示数字时间戳的字符串<代码>新日期(dateString)失败,因为它接受可由解析的字符串(例如'01 Jan 1970 00:00:00 GMT'
),而需要将数字时间戳作为数字传递
除法是将字符串
转换为数字
的一种隐式方法。因此,满足了正确的格式和参数集,并且new Date()
起作用。将字符串board.resultsbox.value
除以一时,JS尝试将字符串转换为数字<代码>日期
需要一个数字。