【发布时间】:2017-04-09 08:53:06
【问题描述】:
我有一个类似2016/1/1 的字符串,我想将其更改为正确的格式,例如2016/01/01 (yyyy/mm/dd)。输出格式也应该是字符串。
正确的做法是什么?
【问题讨论】:
-
是什么使它成为正确的格式?
标签: javascript datejs
我有一个类似2016/1/1 的字符串,我想将其更改为正确的格式,例如2016/01/01 (yyyy/mm/dd)。输出格式也应该是字符串。
正确的做法是什么?
【问题讨论】:
标签: javascript datejs
这是我经常使用的一段代码:
function yyyymmdd(dte) {
var _date = new Date(dte);
var mm = _date.getMonth() + 1; // getMonth() is zero-based
var dd = _date.getDate();
return [_date.getFullYear(),
"/",
(mm>9 ? '' : '0') + mm,
"/",
(dd>9 ? '' : '0') + dd
].join('');
}
var date = "1/1/2010";
yyyymmdd(dte); // returns "2010/01/01"
这是我想出的一种我喜欢的简单格式。可能有很多方法可以处理这段代码。
这是后来推荐给我的稍微干净一点的版本。
function yyyymmdd(dte) {
var _date = new Date(dte);
var mm = _date.getMonth() + 1; // getMonth() is zero-based
var dd = _date.getDate();
return [_date.getFullYear(),
(mm>9 ? '' : '0') + mm,
(dd>9 ? '' : '0') + dd
].join('/');
}
【讨论】:
在 Javascript 中处理日期可能会很痛苦,另一种解决方案是使用 momentjs
图书馆可以找到here
然后,您可以使用 .format() 选项轻松地将日期格式化为各种不同的格式:
var dateTime = new Date();
dateTime = moment(dateTime).format("YYYY/MM/DD");
【讨论】:
使用Datejs,您将格式传递给.toString()。
示例
Date.parse('2016/1/1').toString('yyyy-MM-dd')
// "2016-01-01"
希望这会有所帮助。
【讨论】:
var now = new Date();
var date = now.getDate();
var month = now.getMonth() + 1;
var monthName = ['January', 'February', 'March', 'April', 'May', 'June', 'July','August','September', 'Octobor', 'November', 'December']
var year = now.getFullYear();
if (date <= 9) {
date = '0'+ date
}
console.log(date + '-' + monthName[month] + '-' +year);
【讨论】: