我用下面的代碼傳遞給我的javascript代碼C#日期時間爲Javascript日期時間
sb.Append("start: new Date(" + Convert.ToDateTime(appointment.AppointmentDate).Subtract(new DateTime(1970, 1, 1)).TotalMilliseconds.ToString() + "),");
的問題是,它不包括按照日期進行的時間。我怎樣才能包括時間?
謝謝!
我用下面的代碼傳遞給我的javascript代碼C#日期時間爲Javascript日期時間
sb.Append("start: new Date(" + Convert.ToDateTime(appointment.AppointmentDate).Subtract(new DateTime(1970, 1, 1)).TotalMilliseconds.ToString() + "),");
的問題是,它不包括按照日期進行的時間。我怎樣才能包括時間?
謝謝!
這個問題可能是區域設置,請嘗試:
sb.Append("start: new Date(" + Convert.ToDateTime(appointment.AppointmentDate).Subtract(new DateTime(1970, 1, 1)).TotalMilliseconds.ToString(System.Globalization.CultureInfo.InvariantCulture.NumberFormat) + "),");
using System;
class Program
{
static void Main(string[] args)
{
DateTime? myTime = new DateTime(1970, 1, 1, 0, 0, 1);
Console.Write(myTime.Value.ToUnixTimeInMs().ToString());
Console.Read();
}
}
public static class DateTimeExtensions
{
private static readonly DateTime unixEpoch = new DateTime(1970, 1, 1);
public static double ToUnixTimeInMs(this DateTime dateTime)
{
return dateTime.Subtract(DateTimeExtensions.unixEpoch).TotalMilliseconds;
}
}
簡單的傳入的ToUnixTimeInMs()
的返回值轉換爲JavaScript日期對象的構造函數。
如果你有.NET 3.5+或AJAX Extensions for .NET 2.0,你可能已經有了將JavaScriptSerializer
類中的對象轉換爲JavaScript的方法。
添加對System.Web.Extensions的引用。
using System.Web.Script.Serialization;
...
var jsSerializer = new JavaScriptSerializer();
string jsDate = jsSerializer.Serialize(appointment.AppointmentDate);
現在,在JS端,你將不得不使用JSON parser撤消JSON序列化。
一種方法是使用Date.parse,可以處理更多的格式。
var d = new Date(Date.parse("<your date here>"));
您需要使用新的日期和Date.parse因爲Date.parse並沒有因爲1970年返回一個日期對象,但毫秒數NNN東西。
您可以分析格式爲en-US
格式的日期/時間字符串。
將此代碼放入您的aspx頁面並放入SCRIPT標籤,您將在dt
變量中使用DateTime
值。
var dtString = '<%= MyDateTimeObject.ToString((new System.Globalization.CultureInfo("en-US")).DateTimeFormat) %>';
var dt = new Date(dtString);
不知[DataContractJsonSerializer](http://msdn.microsoft.com/en-us/library/system.runtime.serialization.json.datacontractjsonserializer%28v=VS.90%29.aspx)可以被選中爲你做這件事。 – Powerlord 2010-11-01 18:47:46