2015-12-24 52 views
1

我需要了解如何在JavaScript中進行日期格式設置。如何在JavaScript中做日期格式?

我有日期,

var date="12/02/1994";// dd/mm/yyy 
var date1=new Date(date); 
date1.getDate();// this gives me Month which is 02 
date1.getMonth();// this gives me date which is 12. 

我如何獲得我對VAR日期獲取日期和得到月功能的確切日期?請幫助

+0

因爲'新Date'會將此日期__Fri 1994年12月2日00:00:00__ – Rayon

+0

時區將成爲用戶 – Vasfed

+0

當地時區。如果你要玩保存,可以寫一個刪除你的字符串(或使用插件)並使用'new Date(year,month [,day [,hour [,minutes [,seconds [,milliseconds]]]]]);'construct - [MDN頁面(HTTPS://developer.mozilla。org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) – KarelG

回答

0

答案很簡單:JavaScript使用mm/dd/yyyy數據格式。

它不支持dd/mm/yyyy格式,所以,如果你需要分析這種格式,那麼你將不得不手動執行此操作是這樣的:

function parseDdmmyyyy(str) 
{ 
    var spl = str.split('/'); 
    return new Date(spl[2], spl[1] - 1, spl[0]); 
} 

,或者你將不得不使用外部庫一樣瞬間.js文件。

+1

_(YYYY-MM-DD)_也是首選的JavaScript日期格式 – Rayon

0

Javascript date()預計日期在mm/dd/yy而不是在dd/mm/yymonths0開始,而不是1

var from = "12/02/1994".split("/"); 
var date1 = new Date(from[2], from[1] - 1, from[0]); 
date1.getDate(); 
date1.getMonth(); 
+0

Javascript日期對象並不期望任何特定格式,儘管它們嘗試解析以各種格式給出的字符串。標準中只規定了一個,這不是OP中的一個。 – RobG

0

使用new Date('02/12/1994')new Date('1994-02-12')new Date(1994, 02-1, 12),因爲JS個月從0開始,並使用美國日期格式,其中月先行

0

可以使用具有通過URL mattkruse (Date Funtion)一些非常好的例子,簡單的JS文件DateFormat.js 從這個JS文件你可以驗證傳入日期是一個真正的格式,即使你可以在幾種方式添加格式日期。

enter image description here

0

想必你想知道如何格式化字符串,使他們始終得到瀏覽器解析。簡短的答案是,不能保證任何特定的字符串都能被所有正在使用的瀏覽器(甚至可能是大多數)正確解析。

所以底線是:不要使用Date構造函數解析字符串。這在很大程度上取決於實現,甚至在ES5和ECMAScript 2015中指定的格式也很差且不一致。

瀏覽器如何看待像「1994年12月2日」的字符串是完全依賴於實現的,但大多數都會把它當作特殊的美月/日/年的格式,即12月2日和得到月將返回11,因爲月份是零索引。因此,您應該總是手動解析字符串(一個庫可以提供幫助,但是一個簡單的解析函數只有2行,如果需要驗證,則需要3個)。

// Parse a date string as d/m/y 
 
// If s is not a valid date, return a Date object with its 
 
// time value set to NaN. 
 
function parseDMY(s) { 
 
    var b = s.split(/\D/); 
 
    var d = new Date(b[2], --b[1], b[0]); 
 
    return d && b[1] == d.getMonth()? d : new Date(NaN); 
 
} 
 

 
document.write(parseDMY('12/02/1994'));