2

如果我选择日期 >12

,我会在 chrome 上收到验证消息我使用了带有语法的本地化日期选择器

var abc = $("#culture").val();
        $.datepicker.setDefaults($.datepicker.regional[""]);

        $("#dob").datepicker({
            changeMonth: true,
            changeYear: true,
            dateFormat: 'dd-mm-yy',
            yearRange: '-90:-15',
            defaultDate: '-90y'

        });
        $.datepicker.setDefaults($.datepicker.regional[abc]);


另一个问题:我在控制器上以不良格式获取日期,这就是为什么我的数据库包含错误条目(日期代替月份和月份代替日期)..建议我可能的解决方案......

我发现相关的是LINK 1

链接2

链接 3

但是以上都不起作用...

4

4 回答 4

0

解决方案不是那么简单,您最终应该覆盖 jquery 验证规则。我建议使用此处MVC 3 jQuery Validation/globalizing of number/decimal field中所述的 Globalize 插件

于 2013-06-26T13:54:55.083 回答
0

尝试这个:

$("#dob").datepicker({
    changeMonth: true,
    changeYear: true,
    dateFormat: 'mm-dd-yy',
    yearRange: '-90:-15',
    defaultDate: '-90y'
});  

var abc = $("#culture").val();  

$("#dob").datepicker("setDate", new Date(abc));

$("#dob").datepicker({
    changeMonth: true,
    changeYear:  true,
    dateFormat:  'dd-mm-yy',
    yearRange:   '-90:-15',
    defaultDate: '-90y'
});

否则,您可以将日期作为字符串,然后转换为您需要的格式。

如果您使用 jQuery 运行,则可以使用 datepicker UI 库的parseDate函数将字符串转换为日期:

var d = $.datepicker.parseDate("DD, MM dd, yy",  "Sunday, February 28, 2010");

然后使用formatDate方法将其变为您想要的字符串格式:

var datestrInNewFormat = $.datepicker.formatDate( "mm/dd/yy", d);

如果您没有使用 jQuery,那么它可能不是最好的计划,因为您需要 jQuery 核心以及 datepicker UI 模块……最好遵循上面 Segfault 的建议来使用 date.js。

于 2012-05-30T12:52:12.367 回答
0

首先,如果您使用的是 MVC,并且您显示了来自服务器的一些日期,您应该显示如下日期:

@Html.TextBox("InsertDate", Model.InsertDate.ToString("dd/MM/yyyy"), new { @class = "date" })

在你的 jquery 中:

$('.date').datepicker({ dateFormat: "dd/mm/yy" }).val();

如果您的文化是美国文化,则 ModelState.IsValid 将中断。一个肮脏的黑客是这样的:

var insertDateStr = ModelState.Values.ToList()[3].Value.AttemptedValue;
var insertDate = DateTime.ParseExact(insertDateStr, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None);

最后,对于 chrome 上的红色,只需在文本框样式中添加背景颜色白色即可。

@Html.TextBox("InsertDate", Model.InsertDate.ToString("dd/MM/yyyy"), new { @class = "date", @style = "background-color: white;" })

它很脏,但它有效..

于 2012-05-30T13:18:52.117 回答
0

如果您希望 ASP.Net 以格式确认日期,请使用<globalization culture="en-GB"/>in 。web.config"dd-MM-yyyy"

参考

于 2017-09-15T18:48:36.660 回答