使用javascript将日期和时间字符串组合到单个日期中

Veg*_*gar 22 javascript date

我有一个datepicker返回一个日期字符串,一个timepicker只返回一个时间字符串.

我应该如何将这些组合成一个单独的javascript日期?

我以为我在Date.js找到了解决方案.这些例子显示了一种at( )方法,但我在图书馆找不到它......

dm0*_*514 27

您可以将日期选择器配置为返回格式YYYY-mm-dd(或任何Date.parse支持的格式),您可以在timepicker中构建一个字符串,如:

 var dateStringFromDP = '2013-05-16';

 $('#timepicker').timepicker().on('changeTime.timepicker', function(e) {
    var timeString = e.time.hour + ':' + e.time.minute + ':00';
    var dateObj = new Date(datestringFromDP + ' ' + timeString);
  });
Run Code Online (Sandbox Code Playgroud)

javascript Date对象将字符串作为构造函数参数


mtp*_*ltz 6

您可以连接日期和时间,然后使用 moment 来获取datetime

const date = '2018-12-24';
const time = '23:59:59';

const dateTime = moment(`${date} ${time}`, 'YYYY-MM-DD HH:mm:ss').format();
Run Code Online (Sandbox Code Playgroud)


Jan*_*n.J 5

将日期和时间组合为字符串,如下所示:

1997-07-16T19:20:15
Run Code Online (Sandbox Code Playgroud)

然后,您可以像这样解析它:

Date.parse('1997-07-16T19:20:15');
Run Code Online (Sandbox Code Playgroud)

您也可以使用moment.js或类似的东西。

  • moment.js是一个救命稻草 (3认同)
  • 请注意这一点。我在Safari中运行了`new Date('2018-10-30T10:00')`并得到了`Tue Oct 30 2018 03:00:00 GMT-0700(PDT)`。但是我在Chrome中运行了同样的东西,并得到了``Tue Oct 30 2018 10:00:00 GMT-0700(Pacific Daylight Time)''。似乎Safari将时间解释为UTC,而大多数其他浏览器都将其解释为任何时区。 (2认同)

Dav*_*ith 5

对于纯 JavaScript:

combineDateAndTime = function(date, time) {
    timeString = time.getHours() + ':' + time.getMinutes() + ':00';

    var year = date.getFullYear();
    var month = date.getMonth() + 1; // Jan is 0, dec is 11
    var day = date.getDate();
    var dateString = '' + year + '-' + month + '-' + day;
    var combined = new Date(dateString + ' ' + timeString);

    return combined;
};
Run Code Online (Sandbox Code Playgroud)