2014-12-20 108 views
3

我有一個字符串'28 -Dec-14'在一個變量中。我需要將此字符串轉換爲日期格式。 我的代碼是通過選定的UIDatePickerjquery字符串到日期轉換

<body> 
<input type="text" id="from" readonly="" /> 
<input type="text" id="to" readonly="" onchange="checkDate(this);"/> 
</body> 

這裏日期

我的劇本是

function checkDate(obj) 
{ 
var from = $('#from').val(); 
var to = obj.value; 
alert(to); 
var date = to.split("-")[0], 
      month = to.split("-")[1], 
      year = to.split("-")[2]; 
var d = new Date (year,month,date); 
alert(d); 
} 

這裏year=14,month=Dec,and date=28

+1

可以使用date.js jQuery插件來完成你的任務之後的日期範圍。 –

+0

yes.its working –

回答

0

你可以做到這一點

var months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; 
var d = new Date (year,months[month],date); 
+0

你在jun之後缺少雙引號。 –

0

無需推倒重來

var date = new Date('28-Dec-14') 
+0

不是有效的跨瀏覽器日期格式。例如,將在Firefox中返回「無效日期」 – charlietfl

0

您可以使用JavaScript的日期構造函數來實現這一點,只需將您的日期字符串到它;

new Date(yourString); 

我已經修改了一些代碼,假設你正在使用JQuery,這裏是一個工作演示:

See fiddle

0

看起來像你正試圖驗證範圍和它」 d很容易,我只是使用momentjs(http://momentjs.com/)。像這樣的東西 - 小提琴有更多的實際細節。更妙的是,如果你使用jQuery用戶界面,它已經具有強制執行的就是從http://jqueryui.com/datepicker/#date-range

function isDateRangeValid(date1, date2) { 
    var m1 = new moment(date1); 
    var m2 = new moment(date2); 

    if (m1.isValid() && m2.isValid()) { 
     return m1 < m2; 
    } else { 
     return false; 
    } 
} 

// Test the function 
var testRanges = [ 
    ['01/10/2014','28-Dec-14'], 
    ['28-Dec-2014', '27-Dec-14'], 
    ['28-Dec-2014', '12/29/2014'] 
]; 

testRanges.forEach(function(entry) { 
    alert('Range: ' + entry[0] + ' TO ' + entry[1] + 
     ', ISVALID: ' + 
     isDateRangeValid(entry[0],entry[1]) 
    ); 
}); 

http://jsfiddle.net/8e9j7k7v/