如何在不將Date對象更改爲String對象的情況下以ddmmyyyy格式獲取javascript日期?Javascript日期格式爲字符串特定格式
- 我有一個
String stringDate = 31/08/2015
(在DD/MM/yyyy格式) - 我想獲得一個JavaScript Date對象在相同的格式,即
dateObj = 31/08/2015
(其中選項dateObj爲dd/mm的JavaScript的日期對象/ yyyy格式)
如何在不將Date對象更改爲String對象的情況下以ddmmyyyy格式獲取javascript日期?Javascript日期格式爲字符串特定格式
String stringDate = 31/08/2015
(在DD/MM/yyyy格式)dateObj = 31/08/2015
(其中選項dateObj爲dd/mm的JavaScript的日期對象/ yyyy格式)試試這個:
var d = new Date("31/0/2015");
如何將字符串轉換形式 「DD/MM/YYYY」 上的日期對象在javascript:
var stringDate = "31/08/2015";
//split the string into array of date components
stringDate = stringDate.split("/");
//stringDate is now ["31", "08", "2015"]
//convert each array string value to a number, using unary plus
//and feed these values into a new date object
var dateObj = new Date(+stringDate[2], +stringDate[1] - 1, +stringDate[0]);
//note that javascript month values are 0 for Jan ... 11 for Dec, need to subtract one from the month value
而如何才能獲得窗體上的字符串「DD/MM/YYYY」從日期對象:
//a date object representing 31 Aug 2015
var dateObject = new Date(2015, 7, 31);
//get the date, month and year values from the date object
var dmy = [
dateObject.getDate(),
dateObject.getMonth() + 1,
dateObject.getFullYear()
];
//convert to strings and pad with leading zero, if necessary
dmy[0] = ('0' + dmy[0]).slice(-2);
dmy[1] = ('0' + dmy[1]).slice(-2);
dmy[2] = ('0000' + dmy[2]).slice(-4);
//join values with `/` as delimiter
dmy = dmy.join('/');
//dmy is now the string "31/08/2015"
嗨托馬斯,嘗試了你的代碼..但它提供了不是dd/mm/yyyy格式的日期對象。還有一個日期在獲得的時間戳中遞減。 – shubh
嗨,詹姆斯。 Javascript日期對象沒有特定的輸出格式sych,如dd/mm/yyyy(它們將日期存儲爲表示1970年1月1日以來的毫秒數的整數,並提供了簡化日期算術的方法)。如果要將日期作爲日期對象存儲,但將其表示爲dd/mm/yyyy格式的字符串,則上述代碼將幫助您將字符串轉換爲日期對象,但需要另一個函數才能在表單上獲取字符串dd/mm/yyyy來自日期對象,因爲javascript沒有任何本地方法。 –
在上面的答案中,添加了從日期對象獲取「dd/mm/yyyy」字符串表示所需的步驟。另外,請提供一些減少日期的信息。 –
從你的問題和我以前的答案您的意見看來,如果你是要求如下:
的第一個任務是在我以前的答案已經解釋過,我們通過進行功能我們總結做轉換:
//create date object from string on the form "dd/mm/yyyy"
function getDateObjectFromString(dmyString){
return new Date(
+ dmyString.slice(6,10),
(+ dmyString.slice(3,5)) - 1,
+ dmyString.slice(0,2)
);
}
測試此搭配:
var dateString = "31/08/2015";
var dateObject = getDateObjectFromString(dateString);
如果您在控制檯檢查dateObject
或在代碼中使用它,它會顯示爲一個字符串(比你問什麼不同的格式),但是這是因爲JavaScript自動轉換大通過調用Date對象的本地toString()
或toValue()
方法,根據上下文將對象映射到字符串表示形式(或數字表示形式)。
您可以方便地查看dateString
和dateObject
是不同的,而且dateObject
確實有一個日期對象的屬性:
console.log(typeof dateString); //returns "string"
console.log(typeof dateObject); //returns "object"
console.log(dateObject.toString()); //returns a browser-dependent and timezone-dependent string
console.log(dateObject.valueOf()); //returns the numeric date representation
第二個任務可以使您的Date對象使用自定義.toString()
方法來實現:
//custom method to get "dd/mm/yyyy" when called on a Date object
function customDateToString(){
return [
('0' + this.getDate()).slice(-2),
('0' + (this.getMonth() + 1)).slice(-2),
('0000' + this.getFullYear()).slice(-4)
].join("/");
}
我們將避免與Date.prototype
搞亂,但是當我們創建日期對象可以指定該自定義.toString()
,修改getDateObjectFromString
功能:
function getDateObjectFromString(dmyString){
var dateObject = new Date(
+ dmyString.slice(6,10),
(+ dmyString.slice(3,5)) - 1,
+ dmyString.slice(0,2)
);
dateObject.toString = customDateToString;
return dateObject;
}
現在測試:
var dateString = "31/08/2015";
var dateObject = getDateObjectFromString(dateString);
console.log(dateObject); //displays "31/08/2015"
console.log(dateObject.getDay()); // displays 1 (for Monday), showing that dateObject indeed has the properties/methods of a Date object
我希望這回答了你的問題。
顯示你迄今爲止試過的一些代碼? –
「Date」對象的格式爲dd/mm/yyyy是什麼意思? 「日期」對象沒有這樣的格式。在內部,它們只是自UTC時代以來的毫秒數。 – JohnnyHK