2011-02-17 58 views
1

我的輸入將來自一個變量(Ticket.CreationDate)並且看起來像Date.parse(2/4/2011 9:34:48 AM)

2/4/2011 9:34:48 AM (它可能會有所不同,當然)

理想的情況下,我可以在變量傳遞原樣,並得到不同的結果 像 unknownDateFunc(Ticket.DateCreation)\輸出=週五,2011年2月4日 unknownTimeFunc(Ticket.DateCreation )\ Outputs = 9:34 AM

用Date.parse()和.toDateString() 和我只是不能圖 出來。

解決:使用Steve Levithan Method

var datevar = dateFormat(TicketList.Tickets[Ticket].CreationDate.split(" ", 1), "fullDate"); 
// without .split(" ",1) it displayed as "Thu, Feb 24, 2011 00:00" I don't know why 
var timevar = dateFormat(TicketList.Tickets[Ticket].CreationDate, "shortTime"); 
+0

將您的輸入總是具有相同的得到不同的格式字符串格式? – ChaosPandion 2011-02-17 21:11:00

+0

是的,但日期和時間當然會有所不同,所以mm/dd和hh有時會有1位數字,有時候是2. – gooddadmike 2011-02-17 21:24:15

回答

3

我建議2個不同日期庫結合我所知道的。

第一個用於解析日期的字符串是DateJS。你可以在http://www.datejs.com/找到它。你的榜樣與他們的圖書館精細解析(一旦你有適當的引號)

// Results in Date object whose toString is: 
// Fri Feb 04 2011 09:34:48 GMT-0600 (Central Standard Time) 
Date.parse('2/4/2011 9:34:48 AM') 

其他庫是用於創建基於你的約會對象很好地格式化字符串值。這可以在找到。例如,從該頁面:

// Saturday, June 9th, 2007, 5:46:21 PM 
var now = new Date(); 
dateFormat(now, "dddd, mmmm dS, yyyy, h:MM:ss TT"); 
3

事實上,你有一個靜態格式使解決方案簡單。

var dateReg = 
    /(\d{1,2})\/(\d{1,2})\/(\d{4})\s*(\d{1,2}):(\d{2}):(\d{2})\s*(AM|PM)/; 
function parseDate(input) { 
    var year, month, day, hour, minute, second, 
     result = dateReg.exec(input); 
    if (result) { 
     year = +result[3]; 
     month = +result[1]; 
     day = +result[2]; 
     hour = +result[4]; 
     minute = +result[5]; 
     second = +result[6]; 
     if (result[7] === 'PM' && hour !== 12) { 
      hour += 12; 
     }  
    } 
    return new Date(year, month, day, hour, minute, second); 
} 
+0

因此,在返回後,我將如何顯示2011年2月4日星期五? – gooddadmike 2011-02-17 21:42:13

-3

創建一個函數,它接受的日期,格式字符串,並進行格式字符串作爲參數

string FormatDate(string date, string informat,string outformat) 
{ 
    var culture = CultureInfo.CreateSpecificCulture("en-US"); 
    return DateTime.ParseExact(date, informat, culture).ToString(outformat); 
} 

FormatDate("2/4/2011 9:34:48 AM","M/d/yyyy H:m:s tt","H:m:s")    //9:34:48 

您可以從here