【发布时间】:2016-05-19 02:11:15
【问题描述】:
我正在使用Moment js 来获取正确的日期格式。
所以我做了什么,我有一个文本框,我在其中插入今天的日期,例如 09/02/2016 它在这里正确显示
var dt1 = moment(document.getElementById('TextBox1').value + " " + document.getElementById('DrpTime').value).zone(0).format("dd/MM/yyyy HH:mm");
但是当我在下面的警报中检查相同的日期时
alert(dt1);
我得到Mon Feb 01 2016 09:00:00 GMT +0530的价值
我尝试了here 的逻辑,但对我没有帮助。知道出了什么问题。
我的 HTML
<asp:TextBox ID="TextBox1" runat="server" Width="80" ></asp:TextBox>
<cc3:Calendar ID="Calendar1" runat="server" DatePickerMode="true" TextBoxId="TextBox1"
DatePickerImagePath="../../Images/icon2.gif" CultureName="en-GB">
</cc3:Calendar>
<asp:DropDownList ID="DrpTime" runat="server" Width="65px">
<asp:ListItem Value="09:00">09:00</asp:ListItem>
<asp:ListItem Value="13:00">13:00</asp:ListItem>
<asp:ListItem Value="17:00">17:00</asp:ListItem>
<asp:ListItem Value="21:00">21:00</asp:ListItem>
</asp:DropDownList>
注意:我想要 dd/MM/yyyy 格式的日期
我还从下面的链接中获取了 js:-
http://momentjs.com/downloads/moment.min.js
更新
function ValidateRecord() {
var StrPriError = "";
var dt1 = moment(document.getElementById('TextBox1').value + " " + document.getElementById('DrpTime').value, "dd/MM/yyyy HH:mm");
var dt2 = moment(document.getElementById('TextBox2').value + " " + document.getElementById('DrpTime3').value, "dd/MM/yyyy HH:mm");
var dt3 = moment(document.getElementById('TextBox3').value + " " + document.getElementById('DrpTime4').value, "dd/MM/yyyy HH:mm");
var dt4 = moment(document.getElementById('TextBox4').value + " " + document.getElementById('DrpTime5').value, "dd/MM/yyyy HH:mm");
alert(dt1);
if (StrPriError != "") {
alert(StrPriError);
return false;
}
else {
return true;
}
}
【问题讨论】:
-
您提到的格式实际上是日期的默认 JavaScript 格式。您能否发布更多 JavaScript 代码,因为这应该可以正常工作。
-
@Martin:更新了问题,除此之外,我在我的页面中添加了时刻js
-
@Martin——不,不是。 ECMA-262 中指定的唯一格式是 ISO 8601,并且 09/02/2016 不符合,Mon Feb 01 2016 09:00:00 GMT +0530 也不符合(这与我的浏览器返回的 date 不同) .toString).
-
@RobG:同意你 Rob,因为如果它是相同的,我会在不使用
moment.js的情况下破解它。我刚刚添加了moment.js以获得所需的格式 -
@coder——最好手动解析字符串,一个库(比如moment.js)可以帮助解决这个问题。 ;-)
标签: javascript date momentjs