2013-07-08 77 views
0

我正在使用java script解析Date對象到web服務,如下所示。asmx webservice問題日期對象

HRA_Create.HelloWorld(new Date("2013-07-08 00:00:00")); 

但是當我在asmx WebMethod,顯示檢查此Date7/7/2013 6:00:00 PM

我調試我的應用程序,看到如下的值。

Debug.WriteLine(dt.ToString()); 

什麼可能是錯誤?我該如何解決這個問題?

[WebMethod] 
    public string HelloWorld(DateTime dt) 
    { 
     Debug.WriteLine(dt.ToString()); 

     return dt.ToString(); 
    } 

Java腳本

<script type="text/javascript"> 
    function callServer() { 
     HRA_Create.HelloWorld(new Date("2013-07-08 00:00:00")); 
    } 
</script> 

的ScriptManager

<asp:ScriptManager ID="ScriptManager1" runat="server"> 
    <Services> 
     <asp:ServiceReference Path="~/HRA_Create.asmx" /> 
    </Services> 
</asp:ScriptManager> 

的Java腳本調用

<a href="javascript:callServer()">Call Server</a> 
+0

日期都不同,你可能想檢查你的代碼,這不是格式問題。 –

+0

@Nil抱歉。我的複製粘貼問題。我已更新我的帖子。返回值是'7/7/2013 6:00:00 PM'。 – Bishan

+0

2013-07-08和7/7/2013是不同的,這是正確的嗎? –

回答

1

您需要使用下面的ISO 8601標準的W3C formats之一:

Year: 
    YYYY (eg 1997) 
Year and month: 
    YYYY-MM (eg 1997-07) 
Complete date: 
    YYYY-MM-DD (eg 1997-07-16) 
Complete date plus hours and minutes: 
    YYYY-MM-DDThh:mmTZD (eg 1997-07-16T19:20+01:00) 
Complete date plus hours, minutes and seconds: 
    YYYY-MM-DDThh:mm:ssTZD (eg 1997-07-16T19:20:30+01:00) 
Complete date plus hours, minutes, seconds and a decimal fraction of a second 
    YYYY-MM-DDThh:mm:ss.sTZD (eg 1997-07-16T19:20:30.45+01:00) 

where: 

YYYY = four-digit year 
MM = two-digit month (01=January, etc.) 
DD = two-digit day of month (01 through 31) 
hh = two digits of hour (00 through 23) (am/pm NOT allowed) 
mm = two digits of minute (00 through 59) 
ss = two digits of second (00 through 59) 
s = one or more digits representing a decimal fraction of a second 
TZD = time zone designator (Z or +hh:mm or -hh:mm) 

在您的例子,以下任一應該發送正確的日期:

HRA_Create.HelloWorld(new Date("2013-07-08T00:00:00Z")); 
HRA_Create.HelloWorld(new Date("2013-07-08"))