使用javascript格式化日期

时间:2016-03-02 06:03:46

标签: javascript date

JavaScript中的格式日期有问题,这是我的功能代码

   //originalDate = '2016-03-02 09:12:14.989522';
   var d = new Date(originalDate),
        month = d.getMonth() + 1,
        day =d.getDate(),
        year = d.getFullYear(),
        hour = d.getHours(),
        min = d.getMinutes();
    alert([day, month, year].join('-')+' '+[hour,min].join(':'));

my original date ='2016-03-02 09:12:14.989522'; 我的代码始终是return 'Nan-Nan-Nan Nan:Nan',我看到的是未知的originalDate。 有什么帮助吗?

注意:我的日期数据库中的数据类型为timestamp

3 个答案:

答案 0 :(得分:1)

代码中的ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "none","<script>$('#mymodal').modal('show');</script>", false); ScriptManager.RegisterStartupScript(Page, Page.GetType(), "mymodal", "$('#mymodal').modal();", true); 参数是date对象吗?那不会奏效。 Javascript中没有这样的构造函数。您可以使用Date

点击此处查看date.now() https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date

的有效构造函数

答案 1 :(得分:1)

简单解决方案:用“T”替换date字符串中的空格。

(但是,为了在技术上完全正确,您还应在末尾添加时区指示符,或者指示UTC的附加“Z”,即协调世界时,或“+ hh:mm”或“-hh” :mm“表示时区偏移。)

MDN site for Date.parse()写道:

  

由于解析日期字符串的差异,...结果不一致,尤其是在不同的ECMAScript实现中,其中“2015-10-12 12:00:00”之类的字符串可能被解析为NaN,UTC或本地时区。

  

日期时间字符串可能采用ISO 8601格式。

上面提到的ISP 8601 specs写道:

  

格式如下。确切地说,此处显示的组件必须存在,正好是这个标点符号。请注意,“T”字面上会出现在字符串中,以指示时间元素的开头,如ISO 8601中所指定。

  

完成日期加上小时,分钟,秒和小数部分   第二个YYYY-MM-DDThh:mm:ss.sTZD(例如1997-07-16T19:20:30.45 + 01:00)

这是您的代码重写,将date中的空格替换为“T”。如果这在浏览器中不起作用,请在date末尾添加“Z”或时区偏移。

var date ='2016-03-02T09:12:14.989522';
var d = new Date(date),
  month = d.getMonth() + 1,
  day = d.getDate(),
  year = d.getFullYear(),
  hour = d.getHours(),
  min = d.getMinutes();
document.write([day, month, year].join('-') + ' ' + [hour, min].join(':'));

答案 2 :(得分:0)

首先解析您的原始日期,然后在您的代码中使用它。

var MilliSecond=Date.parse(originalDate);
var d=new Date(MilliSecond),
month=d.getMonth()+1,
day=d.getDay(), .......