[英]Convert C# DateTime to Javascript Date
我在Javascript中有一個從MVC接收C#DateTime的函數。 如果日期為空,則應返回“ - ”,如果它是有效日期,則應返回格式化日期。
重要提示:無法以C#的其他格式發送日期。
使用Javascript:
function CheckDate(date) {
if (date == "Mon Jan 01 0001 00:00:00 GMT+0000 (GMT Daylight Time)")
return "-";
else {
var dat = new Date(date);
return dat.getFullYear() + dat.getMonth() + dat.getDay();
}
如果日期是C#New DateTime,有沒有更好的方法來比較?
如何以“yyyy / MM / dd”格式解析並返回日期?
鑒於您堅持使用的輸出,我想不出更好的方法來在javascript端捕獲DateTime
為0。
Date.parse
應該適用於您的解析需求,但它返回毫秒數,因此您需要在其周圍包裝Date構造函數:
var date = new Date(Date.parse(myCSharpString));
對於返回日期,您只需要
date.getFullYear() + "/" + (date.getMonth() + 1) + "/" + (date.getDate() + 1);
(
date.getMonth
和
date.getDate
是0索引而不是1索引。)
小提琴:
http :
//jsfiddle.net/GyC3t/
編輯感謝JoeB的抓捕,讓我做一個修正。 date.getMonth()
函數是0索引的,但date.getDate()
函數是1索引的。 小提琴與+1一起工作,因為date.getMonth在UTC之前的本地時間工作。 我沒有正確檢查文檔,只是添加了1,它與小提琴一起工作。
更合適的方法是:
對於返回日期,您只需要
date.getFullYear() + "/" + (date.getMonth() + 1) + "/" + (date.getUTCDate());
( date.getMonth
為0索引,而date.getDate
為1索引,但易受時區差異的影響。)
小提琴: http : //jsfiddle.net/GyC3t/25/
我使用以下內容將Javascript日期傳遞給C#:
var now = new Date();
var date = (now.getTime() / 86400000) - (now.getTimezoneOffset() / 1440) + 25569;
因此,如果從C#獲得毫秒數,它應該是這樣的:
var csharpmilliseconds;
var now = new Date();
var date = new Date((csharpmilliseconds + (now.getTimezoneOffset() / 1440) - 25569) * 86400000);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.