3

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

2 回答 2

2

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

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

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

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

于 2013-11-14T20:28:12.710 回答
1

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

于 2013-11-14T20:28:45.000 回答