WebMatrix - 美国日期/时间格式被证明是一个问题



我正在创建一个英国网站,因此我网站上的用户通常会使用dd/mm/yyyy格式。我创建了一个日期选择器供用户使用,它工作正常,直到我选择第 13 天 (13/10/2013)。我猜数据库将其视为美国日期,因此一年中没有 13 个月。

我需要对我的代码执行哪些操作才能将其转换为正确的格式,或将我的数据库更改为使用英国格式?什么最简单?

if(IsPost){
    var dateis = Request["date"];
    var insert = "INSERT INTO TestTable (testdate) VALUES (@0)";
    var qinsert = db.Execute (insert, Request["date"]);
}
}
<div class="container">
<h1>Bootstrap Datepicker</h1>
<form method="post">
<div class="input-append date" id="dp3">
<input class="span2" name="date" size="16" type="text" value="">
<span class="add-on"><i class="icon-th"></i></span>
</div>
<button class="btn btn-success" type="submit" value="Submit"/>Submit</button>
</form>
</div>
<script type="text/javascript">
$('#dp3').datepicker({
    format: "dd/mm/yyyy",
    autoclose: true,
    todayHighlight: true
})
</script>

我个人使用格式d MM yyyy日期选择器(例如"2013 年 11 月 14 日")。它占用了更多空间,但对我来说,它更具可读性,并且完全回避了dd/mm/yyyymm/dd/yyyy的问题。

如果要保持原样,只要开发计算机和服务器计算机已正确配置为英国时间,就可以使用AsDateTime()扩展方法,该方法应该可以解决问题。

var qinsert = db.Execute (insert, Request["date"].AsDateTime());

正如迈克在另一个答案中指出的那样,这不是最佳实践 - 拥有依赖于服务器设置等的代码很容易再次困扰您。

通常,最好以 yyyy/mm/dd hh:mm:ss 格式存储日期。这样就没有区域差异的问题。此外,如果你的应用是全局的,则可能需要考虑使用 UTC,这样就不会出现服务器时间变化的问题。

相关内容

最新更新