How do I get a date in YYYY-MM-DD format?
通常,如果我想得到约会,我可以做一些类似的事情
console.log(d);
这样做的问题是,当我运行该代码时,它返回:
Mon Aug 24 2015 4:20:00 GMT-0800 (Pacific Standard Time)
我怎么能得到Date()方法以"MM-DD-YYYY"格式返回一个值,所以它将返回如下内容:
8/24/2015
或者,也许是MM-DD-YYYY H:M
8/24/2016 4:20
只需使用内置的
1 2 | var date = (new Date()).toISOString().split('T')[0]; document.getElementById('date').innerHTML = date; |
1 |
请注意,格式化字符串的时区是UTC而不是本地时间。
下面的代码是一种方法。如果您有日期,请将其传递给
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | var todaysDate = new Date(); function convertDate(date) { var yyyy = date.getFullYear().toString(); var mm = (date.getMonth()+1).toString(); var dd = date.getDate().toString(); var mmChars = mm.split(''); var ddChars = dd.split(''); return yyyy + '-' + (mmChars[1]?mm:"0"+mmChars[0]) + '-' + (ddChars[1]?dd:"0"+ddChars[0]); } console.log(convertDate(todaysDate)); // Returns: 2015-08-25 |
另一种方式:
1 2 | var today = new Date().getFullYear()+'-'+("0"+(new Date().getMonth()+1)).slice(-2)+'-'+("0"+new Date().getDate()).slice(-2) document.getElementById("today").innerHTML = today |
1 |
您希望实现的目标可以通过本机JavaScript实现。对象
以下是代码示例:
1 2 3 4 5 6 7 | var d = new Date(); console.log(d); >>> Sun Jan 28 2018 08:28:04 GMT+0000 (GMT) console.log(d.toLocaleDateString()); >>> 1/28/2018 console.log(d.toLocaleString()); >>> 1/28/2018, 8:28:04 AM |
真的没有必要重新发明轮子。
1 2 3 4 5 6 7 8 9 | function formatdate(userDate){ var omar= new Date(userDate); y = omar.getFullYear().toString(); m = omar.getMonth().toString(); d = omar.getDate().toString(); omar=y+m+d; return omar; } console.log(formatDate("12/31/2014")); |
通过使用moment.js库,您可以这样做:
var datetime = new Date("2015-09-17 15:00:00");
datetime = moment(datetime).format("YYYY-MM-DD");
这是我创建的一个简单的函数,当我继续处理一个项目时,我一直需要以这种格式获得今天,昨天和明天的日期。
1 2 3 4 5 6 7 8 9 10 11 | function returnYYYYMMDD(numFromToday = 0){ let d = new Date(); d.setDate(d.getDate() + numFromToday); const month = d.getMonth() < 9 ? '0' + (d.getMonth() + 1) : d.getMonth() + 1; const day = d.getDate() < 10 ? '0' + d.getDate() : d.getDate(); return `${d.getFullYear()}-${month}-${day}`; } console.log(returnYYYYMMDD(-1)); // returns yesterday console.log(returnYYYYMMDD()); // returns today console.log(returnYYYYMMDD(1)); // returns tomorrow |
可以很容易地修改为传递日期,但是在这里你传递一个数字,它将从今天起返回很多天。
如果您尝试获取'local-ISO'日期字符串。请尝试下面的代码。
1 2 3 | function (date) { return new Date(+date - date.getTimezoneOffset() * 60 * 1000).toISOString().split(/[TZ]/).slice(0, 2).join(' '); } |
参考:Date.prototype.getTimezoneOffset
玩得开心:)