如何从textBox中读取日期,使用Jquery UI DatePicker

时间:2014-03-05 11:19:26

标签: javascript jquery datepicker

以下Jquery UI Date Picker以正确的格式显示日期,但读错了。

HTML:

<input type="text" id="date">
<input type="button" id="btn" value="Show"/>

JavaScript的:

$('#date').datepicker({dateFormat: 'dd-mm-yy'});
$('#btn').click(function(){
  var _myDate = new Date($('#date').val());
  alert(_myDate);
});

什么错了? (Jsfiddle Here

它显示日期正确,但读错了......

当我像这样使用它时:

$('#btn').click(function(){
      var _myDate = $('#date').val();
      alert(_myDate);
 });

没关系,但是当使用C#作为字符串将其传递到服务器端然后将其转换为DateTime时,如果选择了每个Invalid Date,则会出现Day错误大于12。它将Day视为一个月。我所需的日期格式为dd/mm/yyyy

7 个答案:

答案 0 :(得分:6)

也许这是你的答案

$( "#date" ).datepicker({dateFormat: 'mm-dd-yy'});
    $('#btn').click(function(){
    var _myDate = new Date($('#date').val());
    var new_date=_myDate.split('-');
    var month=new_date[0];
    var day=new_date[1];
    var year=new_date[2];
    //you have 3 data, month, day and year.

    alert(month+"/"+day+"/"+year);
    });

您可以使用该3变量日,月,年来编写程序

答案 1 :(得分:0)

将var _myDate = new Date($('#date').val() );更改为var _myDate = $('#date').val());

答案 2 :(得分:0)

试试这个

$( "#date" ).datepicker({dateFormat: 'mm-dd-yy'});
$('#btn').click(function(){
var _myDate = new Date($('#date').val()  );
alert(_myDate);
});

DEMO

答案 3 :(得分:0)

您不需要日期类型声明 - 您可以这样做

$( "#date" ).datepicker({dateFormat: 'dd-mm-yy'});
$('#btn').click(function(){
  var _myDate = $('#date').val();
alert(_myDate);
});

Javascript是一种动态类型语言,因此不需要日期初始化

答案 4 :(得分:0)

试试这个:工作正常

  $('#date').datepicker({dateFormat: 'dd-mm-yy',  changeMonth:true, changeYear:true,showOn: "both",buttonImage: "",buttonImageOnly: false });

console.log($('#date').val());

答案 5 :(得分:0)

我的javaScript函数......

convertDate = function (strDate) {
   var newDate = new Date();
   var oldDate = '';
   if (strDate.contains('/')) {
         oldDate = strDate.split('/');
      } else if (strDate.contains('-')) {
         oldDate = strDate.split('-');
      }
     //OldDate format is dd/mm/yyyy
      newDate.setDate(oldDate[0]);
      newDate.setMonth(oldDate[1] - 1);
      newDate.setYear(oldDate[2]);
      return newDate;
 }

答案 6 :(得分:0)

使用parseDate解析文本框值的方式与初始设置datepicker的格式相同:

console.log($.datepicker.parseDate("dd-mm-yy", $('#date').val()));

parseDate将返回Date对象,因此您无需手动创建它。