JavaScript将十进制转换为日期

4
我有一个字符串类型的日期: var mydate = "05/05/2011" 当我将这个变量传递给函数,例如: myfunction(mydate); 我弹出结果时得到了一个小数而不是字符串日期:
function myfunction(mydate){
    alert(mydate);
}

生成:

0.0004972650422675286

如何将其转换为日期?


2
请使用jsfiddle.net来重现此行为。 - Josiah Ruddell
5
这是数学表达式的结果:5 / 5 / 2011 = 4.972e-4。你确定字符串已经被引用了吗? - Alex K.
这里一定还有更多的内容,以你的例子来看,调用myfunction()并传递一个字符串只会弹出该字符串。忍者编辑很好的发现,Alex,似乎就是这种情况。 - Robert
5个回答

4

这是数学表达式的结果:5 / 5 / 2011 = 4.972e-4,请确保字符串被引用。

var x = 5/5/2011; //performs division

as opposed to

var x = "5/5/2011"; //creates a string

2
我也遇到了这个问题(我正在将代码后端的字符串传递到打开器上的javascript)。我的解决方案非常简单。
在asp.net中,我的解决方案是:
<asp:Label ID="foo" runat="server"/>

在JavaScript中
foo.Text = "5/5/2011";

在代码后台:

string runThis = "blahblah"
+ "'"
+ foo.Text
+ "';";

如果没有单引号包围文本,它将输出十进制的无意义数字(即5/5/2011的数学结果)。

我猜在你的情况下,你可以这样做:

alert("'" + myDate + "'");

0

尝试使用这个语法:

var mydate  = new Date("05/05/2011");

0
05除以05除以2011等于0.0004972650422675286,所以我猜想它认为05/05/2011是一个表达式而不是字符串。你确定变量周围有引号包裹着吗?

实际上,日期已经作为字符串包含在一个变量中了,这就是为什么当我将包含日期的变量作为字符串传递给另一个函数时,我不确定它为什么要尝试解决方程式... - BarclayVision

0

0.0004972650422675286 是 5 / 5 / 2011(表示除法)。

很可能您正在输入日期而没有引用该字符串,或者您正在将该字符串传递给 eval 而不是传递给 Date.parse


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接