2012-05-29 54 views
2

我在Chrome得到確認消息,如果我選擇日期> 12

我已經使用本地化的日期選擇器與語法jQuery的日期選擇器以美國日期格式進行驗證

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

Link2

Link 3

但沒有上述作品...

回答

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運行,您可以使用日期選擇器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核心以及在日期選擇器UI模塊的最佳方案......最好去與建議從Segfault以上使用dat e.js.

0

首先,如果你使用MVC,並告訴你從服務器上某個日期,你應該顯示例如日期:

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

而在你的jQuery只是:

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

如果您的文化是en-US,ModelState.IsValid將會中斷。 這方面的一個骯髒的黑客是這樣的:

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

最後對鉻紅剛添加背景顏色爲白色的文本框的樣式。

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

這是非常髒,但它的工作原理..

0

使用<globalization culture="en-GB"/>web.config描述。

reference