【问题标题】:Convert a client datetime to server datetime in ASP.NET MVC在 ASP.NET MVC 中将客户端日期时间转换为服务器日期时间
【发布时间】:2014-01-13 10:32:54
【问题描述】:

我有一个简单的模型,例如:

[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 格式。

【问题讨论】:

标签: c# asp.net-mvc date


【解决方案1】:

我觉得你应该写

$("#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 格式。

【讨论】:

  • 没有客户端是问题。只是来自服务器...在服务器端我想做转换。
  • 您的解决方案适用于 public string LastUpdate 而不是 public DateTime LastUpdate
【解决方案2】:

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

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" />

我希望它能在我的项目中完美运行

【讨论】:

  • value 是对象。如果我这样做value as Datetime,那么给我01-01-0001
  • @SnakeEyes 因此,当您获取时将其转换为我在下一个示例中首次展示的正确格式,您可以使用 DateTime.UtcNow
  • @SnakeEyes 我已经更新了我的答案。可能对你有帮助。
  • 我想解析我从 Http 请求中收到的内容,而不是现在的日期。
猜你喜欢
  • 2013-04-19
  • 1970-01-01
  • 1970-01-01
  • 2014-03-05
  • 1970-01-01
  • 1970-01-01
  • 2012-08-03
  • 2020-12-01
  • 2013-03-24
相关资源
最近更新 更多