0

我有一个日期字符串,想将其转换为日期对象,添加 2 小时并将转换后的日期对象打印回变量。但我得到下面列出的错误:

// dateTime: 2013-09-27 09:50:05 
var dateTime = $("#inputDatetime").val();
var startDate = dateTime;
var date = new Date(startDate);
var duration = 2;
var endDate = date;
endDate.setHours(date.getHours()+duration)
var dateString = endDate.format("dd-m-yy hh:mm:ss");

错误:

Uncaught TypeError: Object [object Date] has no method 'format'

为什么我会得到这个 TypeError?

4

4 回答 4

3

Vaibs,没有“格式”方法,您可以使用日期对象中的可用方法进行格式化。请不要使用插件

例子 :

// dd-mm-yy hh:mm:ss

function formatDate(date) {
    return ((date.getDate()<10?'0':'')+date.getDate()) + "-"+ 
        (((date.getMonth()+1)<10?'0':'') + (date.getMonth()+1)) + "-" + 
        date.getFullYear()  + " " +((date.getHours()<10?'0':'')+date.getHours()) + ":" + 
       (date.getMinutes()<10?'0':'') +  date.getMinutes() + ":" + 
       (date.getSeconds()<10?'0':'')  + date.getSeconds(); 
 }

*谢谢@donot

于 2013-09-06T18:10:16.273 回答
1

使用 jquery ui 日期解析器。

http://docs.jquery.com/UI/Datepicker/parseDate

这是从我有幸在 js 中使用的字符串中解析日期的最佳功能。当您添加标签 jquery 时,它可能是您的最佳解决方案。

于 2013-09-06T17:56:05.260 回答
0

.format() 不是有效的 Date 方法。JavaScript 没有一种简单的方法可以使用用户指定的格式来格式化日期和时间。您可以做的最好的事情(没有单独的插件)是通过分别获取日期的每个组件并格式化/连接它们来创建自己的字符串。

于 2013-09-06T18:02:43.520 回答
0

我以前用过这个,它似乎工作!

var dateString = endDate.toString("dd-m-yy hh:mm:ss");

于 2013-09-06T18:04:18.510 回答