怎样才能使用jQuery格式化日期?例如,直接使用下面的代码会错误:
$("#txtDate").val($.format.date(new Date(), 'dd M yy'));
有哪些解决方法?
最佳解决办法
jQuery dateFormat是一个单独的插件。您需要使用<script>
标签明确加载。
次佳解决办法
也可以在页面中添加jQuery UI插件。
$("#txtDate").val($.datepicker.formatDate('dd M yy', new Date()));
第三种解决办法
如果不想使用jQuery插件的话,一种方法是使用简单的js date()函数:
例如。:
var formattedDate = new Date("yourUnformattedOriginalDate");
var d = formattedDate.getDate();
var m = formattedDate.getMonth();
m += 1; // JavaScript months are 0-11
var y = formattedDate.getFullYear();
$("#txtDate").val(d + "." + m + "." + y);
请参阅:10 ways to format time and date using JavaScript
如果想添加前导零到日/月,这是一个很好的例子:Javascript add leading zeroes to date
如果想添加前导零到时间试试这个:getMinutes() 0-9 – how to with two numbers?
第四种办法
跟次佳方法稍微不同的语法/上下文:
var dt_to = $.datepicker.formatDate('yy-mm-dd', new Date());
如果决定使用JQuery UI中的日期选择器,确保在文档的<头>部分:
<link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.8.3.js"></script>
<script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
第五种办法
一个非常基本的功能,不需要任何外部插件:
$.date = function(dateObject) {
var d = new Date(dateObject);
var day = d.getDate();
var month = d.getMonth() + 1;
var year = d.getFullYear();
if (day < 10) {
day = "0" + day;
}
if (month < 10) {
month = "0" + month;
}
var date = day + "/" + month + "/" + year;
return date;
};
使用:
$.date(yourDateObject);
结果:
dd/mm/yyyy
第六种办法
还可以使用Moment JS,易用性不错。
var date = moment(); //Get the current date
date.format("YYYY-MM-DD"); //2014-07-10
第七种办法
下面这个代码能够解决上面的问题。
var d = new Date();
var curr_day = d.getDate();
var curr_month = d.getMonth();
var curr_year = d.getFullYear();
var curr_hour = d.getHours();
var curr_min = d.getMinutes();
var curr_sec = d.getSeconds();
curr_month++ ; // In js, first month is 0, not 1
year_2d = curr_year.toString().substring(2, 4)
$("#txtDate").val(curr_day + " " + curr_month + " " + year_2d)
第八种办法
简单的一段代码即可:
var date_str=('0'+date.getDate()).substr(-2,2)+' '+('0'+date.getMonth()).substr(-2,2)+' '+('0'+date.getFullYear()).substr(-2,2);
第九种办法
如果日期值是一个格式为mm/dd/yyyy
的字符串(就像使用date-picker时),那么不需要使用jQuery插件。
var birthdateVal = $('#birthdate').val();
//birthdateVal: 11/8/2014
var birthdate = new Date(birthdateVal);
//birthdate: Sat Nov 08 2014 00:00:00 GMT-0500 (Eastern Standard Time)