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

Converting string to date object, adding two hours and converting back to string (JavaScript)

本文关键字:转换 字符串 两个 小时 JavaScript 对象 日期 添加      更新时间:2023-09-26

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

为什么我会收到此类型错误?

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

例:

//日-月-年 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

使用 jquery ui 日期解析器。

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

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

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

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

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