我在MVC。
在我的模型中,我得到了一个变量Datetime
在我看来,我试图在页面加载时给它一个格式。
控制
@Html.TextBoxFor(m => m.RequestedLaunchDate, new { @class = "dateselector", @style = "float:left;" })
我的JS就像
var now = new Date();//Today's date
now.format("dd/MM/yyyy");
$(".dateselector").datepicker("setDate", now);
但是当页面加载时我将显示为
18/03/2014 00:00:00
为什么?
我做错了什么?
答案 0 :(得分:2)
Date
没有定义format
方法(默认情况下)。您可能想要的是将格式传递给jQuery UI datepicker,如文档here所示。有点像:
var now = new Date();//Today's date
$(".dateselector").datepicker( "option", "dateFormat", "dd/MM/yyyy" );
$(".dateselector").datepicker("setDate", now);
这将设置更改日期选择器格式化日期的方式。如果您将其添加到页面上的其他位置,则可以使用:
var dateString = $.datepicker.formatDate( "dd/MM/yyyy", date );
这将为您提供格式化为您希望的日期的字符串表示。
另一种更健壮的方法是设置所需的语言环境:
var locale = 'de'; // Use the locale you want.
$.datepicker.setDefaults( $.datepicker.regional[ locale ] );
设置此项会将您的日期选择器与其中显示的日期格式一起本地化。
答案 1 :(得分:0)
Date
对象默认没有format
方法。您可以使用某些插件,例如moment.js。
但是,您可以不使用任何JavaScript,但在服务器端使用以下数据注释:
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
将此行代码放在RequestedLaunchDate
Model
属性的正上方
或者您可以参考this post了解有关使用JavaScript格式化日期的更多选项。
答案 2 :(得分:0)
var now = new Date();//Today's date
$(".dateselector").datepicker("setDate", now);
解决了我的问题。
答案 3 :(得分:0)
var now = new Date();//Today's date
var day = now.getDate();
var month = now.getMonth()+1;
var year = now.getFullYear();
if (month < 10) { month = '0' + month; }
var newDate=(day + '/' + month + '/' + year); // This will give "dd/mm/yyyy"
$(".dateselector").datepicker("setDate", newDate);
答案 4 :(得分:-1)
请尝试使用此解决方案格式化日期。
它会帮助你:
var format_date = function(date){
return ("0"+date).slice(-2)
}
var format_month = function(month){
return ("0"+month).slice(-2)
}
var now = new Date();
formate_complete_date = format_date(now.getDate())+"/"+format_month(now.getMonth())+"/"+now.getFullYear() +" "+now.getHours()+":"+now.getMinutes()+":"+now.getSeconds();
console.log(formate_complete_date)