繁体   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