2014-12-03 45 views
0

我使用的JavaScript,並試圖將其轉換爲讀取日期object.But從文本之日起我的問題是日期轉換爲一個月,一個月轉換作爲將字符串轉換爲日期的日期。閱讀從文本框中的日期作爲字符串,並將其轉換成如日期

實施例: 2014年3月12日在文本框中的值

實際輸出: 03 3月, 12日(其是錯誤的)

預期輸出: 03如日期 12 12月(我期待)

將此字符串轉換爲日期時使用以下代碼段

var startTime = document.getElementById("meeting:startTime"); 
date.js 
var stringToDate_startTime=new Date(Date.parse(startTime.value,"dd/mm/yy")); 
moment.js 
var date1=moment(startTime.value).format('DD-MM-YYYY'); 

在上面,即使我已經使用date.js和moment.js文件also.But那些還沒有解決我的problem.Please誰能幫助我得到擺脫了這一點。

回答

0

嘗試...

var from = startTime.value.split("/"); 
var newDate = newDate(from[2], from[1] - 1, from[0]); 

...假設包括時間...

var date_only = startTime.value.split(""); 
var from = date_only[0].split("/"); 
var newDate = newDate(from[2], from[1] - 1, from[0]); 
+0

我的文本框中包含時間also.This是我的文本框的值「2014年3月12日23:05」 – user3663712 2014-12-03 18:14:19

+0

調整,以適應時間被輸入。時間可以被訪問date_only [1] ... – rfornal 2014-12-03 18:18:09

0

我不知道Date.parse()方法的實現,它接受兩個參數的。您可以在這裏查看Mozilla Date.parse()方法描述Date.parse() - JavaScript | MDN

這可能是值得看這個問題的一些信息的提問/回答:Why does Date.parse give incorrect results?

下一個最好的選擇是使用String.split()拆分日期和重新安排的日期部分

var dateStr = '03/12/2014 23:05'; 
var newDateStr = null; 
var dateParts = dateStr.split('/'); 
if (dateParts.length == 3) { 
    var day = dateParts[0]; 
    var month = dateParts[1]; 
    var yearAndTime = dateParts[2]; 

    // Rearrange the month and day and rejoin the date "12/03/2014 23:05" 
    newDateStr = [ month, day, yearAndTime].join('/'); 
} else { 
    throw new Error('Date not in the expected format.'); 
} 

var date = new Date(newDateStr); // JS Engine will parse the string automagically 

alert(date); 

這不是最優雅的解決方案,但希望有助於。

+0

這假定您創建一個名爲「dateStr」變量。 – 2014-12-03 18:03:54

+0

如果我使用第二種方法,我將無法獲得time.My文本框中包含時間也。 – user3663712 2014-12-03 18:13:18

+0

這是我的文本框的值「2014年3月12日23:05」 – user3663712 2014-12-03 18:15:00