我们如何将这个无格式日期112889(mmddyy)转换为特定格式,如11/28/89?
console.log(new Date('112889'))
// I got this: Sat Jan 01 112889 00:00:00 GMT+0800
我在google的任何地方搜索过这个问题,但没有找到具体的答案。
参考搜索:
我也在思考momentjs格式,但无法找到任何关于此的文档,或者我只是错过了它
答案 0 :(得分:2)
使用momentjs库,您可以指定输入字符串的格式,即本例中的MMDDYY。
var d = new moment("112889", "MMDDYY");
document.getElementById('dated').innerText = d.format('MM/DD/YYYY');
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>
<div id="dated"></div>
答案 1 :(得分:1)
请看看moment.js图书馆。试试这段代码
var date = moment('112889',"MMDDYY").format('MM/DD/YY');
console.log(data);
答案 2 :(得分:0)
如果您不想使用库,并且如果您知道您的输入始终为mmddyy
格式,则可以执行以下操作:
var str = '112889';
var arr = str.match(/.{1,2}/g); // Splits string into 2 character chunks
var d = new Date(arr[2],arr[0],arr[1]);
console.log(d);
但是这是非常不正确的,因为如果你给出一个像112804
这样的字符串,那么JS(或其他任何人)就不会知道它是1904年还是2004年,而且它将会获得1904年。在这种情况下,你应该明确指定:
var str = '112896';
var arr = str.match(/.{1,2}/g); // Splits string into 2 character chunks
var d = new Date(arr[2], arr[0], arr[1]); // new Date(yy,mm,dd);
var presentYear = Number((new Date()).getFullYear());
var dateYear = Number(d.getFullYear());
if (presentYear >= dateYear + 100) { // If adding 100 to year makes it greater than present year, then move to 2000s
d = new Date('20' + arr[2], arr[0], arr[1]);
}
console.log(d);