使用moment.js可以从给定的字符串创建时间戳

时间:2014-10-24 13:16:46

标签: javascript jquery jquery-ui timestamp momentjs

我想传递给moment.js一个字符串10-01-2014和该字符串,具体取决于它来自哪个字段,它将00:00:0023:59:59附加到传递的字符串。根据我可以追加的字段,其中一个或另一个。然而,moment.js告诉我"无效日期"我收集的是我创建的字符串。

目前我正在使用jQuery UI和日期选择器小部件来获取字符串的初始部分mm-dd-yyyy但我的最终目标是通过当天午夜00:00:00或一天结束午夜23:59:59并从中创建标准时间戳。我也在使用时区,从中我从其他地方得到时区字符串,所以它不是每个人说的因素,而只是把它用于荣誉提名。

我上次失败的尝试是:

console.log(moment($beginElem.val() + ' 00:00:00').tz(timezone_str).format('X'));

3 个答案:

答案 0 :(得分:1)

当你传递像#10; 10-01-2014'对于momentjs,它将创建一个
 0010-01-01'因为它期待格式' 2014-10-01'。

我猜你总是要先解析你的输入并将正确的格式传递给momentjs。你可以这样做:

var string = '10-01-2014',
    strDate = string.split('-');

// note: month is zero base index
var m = moment({
    year: strDate[2],
    month: strDate[0] - 1,
    day: strDate[1],
    hour: '00',
    minute: '00',
    seconds: '00'
});

console.log(m.format('X'));

答案 1 :(得分:0)

不是传递moment.js字符串,为什么不传递日期对象呢?使用您正在传递的$ beginElem.val()创建日期对象。然后将这个新创建的日期对象传递给片刻。

答案 2 :(得分:0)

你可以这样做:

let timestamp = moment('05-01-2015 14:00', "DD-MM-YYYY HH:mm").unix()

这会根据您的格式为您的日期提供unix秒的时间戳。