将字符串转换为日期对象,添加两个小时并转换回字符串(JavaScript)

时间:2013-09-06 17:53:47

标签: javascript jquery date typeerror

我有一个日期字符串,想要将其转换为日期对象,添加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 个答案:

答案 0 :(得分:3)

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

示例:

// 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

答案 1 :(得分:1)

使用jquery ui date parser。

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

这是解析我喜欢在js中工作的字符串日期的最佳函数。当你添加标签jquery时,它可能是你的最佳解决方案。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

我以前用过这个,似乎有效!

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