格式化日期

时间:2014-03-18 07:54:33

标签: javascript asp.net-mvc

我在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

为什么?

我做错了什么?

5 个答案:

答案 0 :(得分:2)

javascript中的

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)

JavaScript中的

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)