簡體   English   中英

在ASP.NET MVC中將客戶端日期時間轉換為服務器日期時間

[英]Convert a client datetime to server datetime in ASP.NET MVC

我有一個簡單的模型,例如:

[MyRequired(Error = "Invalid date time")]
public DateTime LastUpdate
{
   get;set;
}

...

MyRequiredAttribute類:

public class MyRequiredAttribute: RequiredAttribute {
   public override IsValid(object value) {
        //value get from request is `01/01/0001 00:00:00 ...`
        DateTime parsedTime = DateTime.Parse(value.ToString());

        // here throws exception
   }
}

在JavaScript方面,我使用Datepicker插件

<input type="text" id="LastUpdate" name="LastUpdate" class="datepicker" value="<%=DateTime.Now.ToString( "dd-MM-yyyy" )%>" />

$(".datepicker").datepicker({ dateFormat: 'dd-mm-yy' });

每次,我都從請求01/01/0001接收值,並拋出一個格式不正確的錯誤。

如何將dd-MM-yyyy格式轉換為MM/dd/yyyy格式? 也許MVC僅接受MM/dd/yyyy格式。

在您的模型中使用以下方式

public string LastUpdate
{
  get;set;
}

現在在您的控制器中如果它處於編輯模式,則按以下方式綁定:

Model.LastUpdate = FetchDateFromServer.ToString("dd-MM-yyyy")

otherwise

Model.LastUpdate = DateTime.UtcNow.ToString("dd-MM-yyyy")

現在從您的“視圖”中刪除輸入type =“ text”的值,如果它是強類型的

<input type="text" id="LastUpdate" name="LastUpdate" class="datepicker" />

我希望它能在我的項目中正常工作

我想你應該寫

$("#dates").datepicker("option", "dateFormat", "dd-mm-yy");   // it will give format dd-mm-yy

要么

$("#dates").datepicker("option", "dateFormat", "mm-dd-yy"); // it will give format mm-dd-yy

插入

$(".datepicker").datepicker({ dateFormat: 'dd-mm-yy' });

或在服務器端,您可以執行以下操作

const string dateformate = "dd/MM/yyyy";
var reachDate = DateTime.ParseExact(dates, dateformate, CultureInfo.InvariantCulture);

這會將任何日期轉換為dd / MM / yyyy格式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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