2009-11-08 62 views
4

我需要連接日期值和時間值以使一個值代表javascript中的日期時間。連接日期和時間值

感謝, 丹尼爾

+0

什麼格式或對象類型是原來的日期和時間值? – stpe 2009-11-08 20:06:39

+1

當前的日期和時間值是什麼格式,以及您想要的輸出格式是什麼? JavaScript的本地Date()對象*是*日期時間,您可以在此處使用參數信息進行實例化:https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Date。您可以使用像http://www.datejs.com/這樣的第三方庫,使其更易於以人類可讀的格式顯示。 – 2009-11-08 20:10:35

+0

這兩個值(日期和時間)都是字符串格式。期望的輸出是(月 - 日 - 年hh:mm:ss) – danielea 2009-11-08 22:58:00

回答

2

假設「日期」是日期字符串和「時間」的時間字符串:

// create Date object from valid string inputs 
var datetime = new Date(date+' '+time); 

// format the output 
var month = datetime.getMonth()+1; 
var day = datetime.getDate(); 
var year = datetime.getFullYear(); 

var hour = this.getHours(); 
if (hour < 10) 
    hour = "0"+hour; 

var min = this.getMinutes(); 
if (min < 10) 
    min = "0"+min; 

var sec = this.getSeconds(); 
if (sec < 10) 
    sec = "0"+sec; 

// put it all togeter 
var dateTimeString = month+'/'+day+'/'+year+' '+hour+':'+min+':'+sec; 
+1

1. JavaScript日期對象在解析時會做一些有趣的事情。例如,11:70將被解釋爲12:10。 2.生成的日期時間將在瀏覽器的時區 3.如果輸入無效,isNaN(datetime.getTime())== true – 2009-11-10 18:23:33

+0

對所有點都爲真。 但是,OP沒有提及驗證輸入,所以假設收集的日期和時間值是日期和時間的有效字符串表示。 – jonthornton 2009-11-12 16:58:51

+0

不用擔心,驗證不會成爲開發人員的擔憂......如果他提供無效數據,則是用戶的錯誤... – user3791372 2017-10-26 15:32:12

0

根據原始日期和時間值的類型也有一些不同的方式來處理這一點。

日期對象(同時具有日期和時間)可以通過多種方式創建。

birthday = new Date("December 17, 1995 03:24:00"); 
birthday = new Date(1995,11,17); 
birthday = new Date(1995,11,17,3,24,0); 

如果原始日期和時間也就是型日期的對象,則可以使用調用getHours(),getMinutes(),等等,以提取所需的值。

欲瞭解更多信息,請參閱Mozilla開發人員中心的Date對象。

如果您在您的問題中提供更詳細的信息,我可能會編輯更具體的答案。

+0

抱歉,信息不足。我正在使用一個數據添加器來允許用戶選擇一個日期,它表示爲:exp:1/1/2009。時間值只是一個文本框,允許用戶以這種格式輸入時間:hh:mm。 – danielea 2009-11-08 20:16:02

+0

@danielea:'1/1/2009'是不明確的,是「月 - 日 - 年」還是「日 - 月 - 年」? – CMS 2009-11-08 21:22:15

+0

它是(月 - 日 - 年)。此外,最終結果需要採用以下格式:(月 - 日 - 年hh:mm:ss),然後它需要URLEncoded – danielea 2009-11-08 22:55:17

4

我不能讓接受的答案工作,以便使用moment.js

date = moment(selected_date + ' ' + selected_time, "YYYY-MM-DD HH:mm"); 

    date._i "11-06-2014 13:30" 
2

與合作字符串很有趣,但是我們假設你有兩個日期時間,並且不喜歡依賴字符串。

function combineDateWithTime(d, t) 
{ 
    return new Date(
    d.getFullYear(), 
    d.getMonth(), 
    d.getDate(), 
    t.getHours(), 
    t.getMinutes(), 
    t.getSeconds(), 
    t.getMilliseconds() 
    ); 
} 

測試:

var taxDay = new Date(2016, 3, 15); // months are 0-indexed but years and dates aren't. 
var clockout = new Date(0001, 0, 1, 17); 
var timeToDoTaxes = combineDateWithTime(taxDay, clockout); 
// yields: Fri Apr 15 2016 17:00:00 GMT-0700 (Pacific Daylight Time)