繁体   English   中英

连接日期和时间值

[英]Concatenate a date and time value

我需要连接日期值和时间值,以便在javascript中创建一个表示日期时间的值。

谢谢,丹尼尔

我无法让接受的答案工作,所以使用了moment.js

date = moment(selected_date + ' ' + selected_time, "YYYY-MM-DD HH:mm");

  date._i   "11-06-2014 13:30"

假设“date”是日期字符串,“time”是时间字符串:

// create Date object from valid string inputs
var datetime = new Date(date+' '+time);

// format the output
var month = datetime.getMonth()+1;
var day = datetime.getDate();
var year = datetime.getFullYear();

var hour = this.getHours();
if (hour < 10)
    hour = "0"+hour;

var min = this.getMinutes();
if (min < 10)
    min = "0"+min;

var sec = this.getSeconds();
if (sec < 10)
    sec = "0"+sec;

// put it all togeter
var dateTimeString = month+'/'+day+'/'+year+' '+hour+':'+min+':'+sec;

使用字符串很有趣,但是假设你有两个日期时间并且不喜欢依赖字符串。

function combineDateWithTime(d, t)
{
   return new Date(
    d.getFullYear(),
    d.getMonth(),
    d.getDate(),
    t.getHours(),
    t.getMinutes(),
    t.getSeconds(),
    t.getMilliseconds()
    );
}

测试:

var taxDay = new Date(2016, 3, 15); // months are 0-indexed but years and dates aren't.
var clockout = new Date(0001, 0, 1, 17);
var timeToDoTaxes = combineDateWithTime(taxDay, clockout);
// yields: Fri Apr 15 2016 17:00:00 GMT-0700 (Pacific Daylight Time)

根据原始日期和时间值的类型,有一些不同的方法可以解决这个问题。

可以以多种方式创建Date对象(具有日期和时间)。

birthday = new Date("December 17, 1995 03:24:00");
birthday = new Date(1995,11,17);
birthday = new Date(1995,11,17,3,24,0);

如果原始日期和时间也是Date类型的对象,则可以使用getHours(),getMinutes()等来提取所需的值。

有关更多信息,请参阅Date对象的Mozilla开发人员中心。

如果您在问题中提供更详细的信息,我可以编辑答案以使其更具体。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM