簡體   English   中英

將C#DateTime轉換為Javascript日期

[英]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.getMonthdate.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM