您好我有一个关于格式化日期的问题,如果日期没有前导零,则日期和月份具有前导零,例如:1-1-2017。
现在我尝试在Stackoverflow上根据不同的答案编写一些代码,但没有成功。
这是我的代码:
var input_date = "1-1-2017";
var input_date2 = "22-11-2017";
var myDate = new Date(input_date);
var prettyDate =
( '0' + (myDate.getDate()) ).slice( -2 ) + '-' +
( '0' + (myDate.getMonth()+1) ).slice( -2 ) + '-' +
myDate.getFullYear();
document.write( prettyDate );
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
这适用于日期:1-1-2017,但只要变量input_date2
用作Date参数,格式就会出错。
我正在寻找一种机制,如果缺少前导零,则可以格式化我的日期。任何帮助都会很感激。
PS。实际上,我想知道用jQuery这不是更容易,而不是像我上面那样使用普通的Javascript吗?
答案 0 :(得分:2)
问题是日期字符串的格式。 by
使用以下格式:Date()
。如果您更改MM-DD-YYYY
以使用此格式,那么它可以正常工作。
input_date2
&#13;
var input_date = "1-1-2017";
var input_date2 = "11-22-2017";
var myDate = new Date(input_date2);
var prettyDate =
( '0' + (myDate.getDate()) ).slice( -2 ) + '-' +
( '0' + (myDate.getMonth()+1) ).slice( -2 ) + '-' +
myDate.getFullYear();
document.write( prettyDate );
&#13;
答案 1 :(得分:-2)
此功能“过滤”这些值并仅在日/月为&lt; 0时添加'0'。 10(例如5到05)还有很大的改进空间......对不起,第一个根本没用。
function fixDateFormat(input_date){
let myDate = new Date(input_date);
//document.write(myDate + " ----------- ")
let myDay = myDate.getDate();
//document.write("Day: " + myDay + "| ");
let myMonth = myDate.getMonth() + 1;
//document.write("Month: " + myMonth + " :::: ");
myDay = (myDay < 10) ? ("0" + myDay) : myDay;
myMonth = (myMonth < 10) ? ("0" + myMonth) : myMonth;
return myDay + "-" + myMonth + "-" + myDate.getFullYear();
}
var input_date = "1-1-2017";
var input_date2 = "22-11-2017";
var prettyDate = fixDateFormat(input_date);
document.write(prettyDate);
我测试它,现在它返回你想要的dd-mm-yyyy格式。