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

时间:2013-11-14 15:51:59

标签: sql date razor webmatrix

我正在创建一个英国网站,因此我网站上的用户通常会使用dd / mm / yyyy格式。我已经为用户创建了一个datepicker,它工作正常,直到我选择第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>

2 个答案:

答案 0 :(得分:2)

我个人使用格式d MM yyyy作为datepickers(例如'2013年11月14日')。这会占用更多空间,但对我而言,它更具可读性,完全回避dd/mm/yyyy vs mm/dd/yyyy问题。

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

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

正如迈克在另一个答案中指出的那样,这不是最好的做法 - 拥有依赖于服务器设置等的代码很容易回来困扰你。

答案 1 :(得分:1)

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