我想传递给moment.js一个字符串10-01-2014
和该字符串,具体取决于它来自哪个字段,它将00:00:00
或23: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'));
答案 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秒的时间戳。