Csh*_*ner 11 javascript datetime momentjs
我需要将变量添加secondsToMinutes到startdate.
secondsToMinutes是"3:20"
startDate="2:00 PM"
endDate应该等于"2:03:20 PM".我已经尝试了很多方法并且每次都会出错.
var startdate = data.StartTime;
startdate = moment(startdate).format('LTS');
var secondsToMinutes = readableDuration(self.runlength());//='3:20';
var seconds = secondsToMinutes.split(':')[1];
var minutes = secondsToMinutes.split(':')[0];
var date = moment(startdate)
.add(seconds, 'seconds')
.add(minutes, 'minutes')
.format('LTS');
Run Code Online (Sandbox Code Playgroud)
日期显示为无效日期.
小智 15
moment().format("LTS")以hh:mm:ss AM/PM格式返回字符串值.使用非标准格式的字符串创建时刻对象时,应将输入格式作为第二个参数传递给时刻构造函数.
例如:Jan 1, 2017in string 01012017不是标准表示.但是如果你需要一个时刻对象,使用时moment("01012017")会在格式化时给出"无效日期"响应.相反,使用moment("01012017","DDMMYYYY")
var d = moment("01012017")
d.toISOString() => "Invalid date"
var d = moment("01012017", "DDMMYYYY")
d.toISOString() => "2016-12-31T18:30:00.000Z"
Run Code Online (Sandbox Code Playgroud)
在你的代码中,当创建'date'变量时,传递"hh:mm:ss A"作为矩构造函数中的第二个参数,如下所述.
var date = moment(startdate, "hh:mm:ss A")
.add(seconds, 'seconds')
.add(minutes, 'minutes')
.format('LTS');
Run Code Online (Sandbox Code Playgroud)
在最后一次moment()调用中,您试图解析值“2:00:00 PM”。根据文档,在这种情况下您必须使用 String+Format 调用:
对于解析除 ISO 8601 字符串以外的任何内容的一致结果,您应该使用字符串 + 格式。
当你这样做时:
var date = moment('2:00:00 PM')
.add(30, 'seconds')
.add(2, 'minutes')
.format('LTS');
Run Code Online (Sandbox Code Playgroud)
该date会是一个Invalid date。但是,如果您将格式h:mm:ss A作为第二个参数传递:
var date = moment('2:00:00 PM', 'h:mm:ss A')
.add(30, 'seconds')
.add(2, 'minutes')
.format('LTS');
Run Code Online (Sandbox Code Playgroud)
……结果是2:02:30 PM。
Moment 有非常好的文档。我会检查一下:http : //momentjs.com/docs/
但要更直接地解决您的问题,您可以执行以下操作:
var secondsToMinutes = '3:20';
var seconds = secondsToMinutes.split(':')[1];
var minutes = secondsToMinutes.split(':')[0];
var momentInTime = moment(...)
.add(seconds,'seconds')
.add(minutes,'minutes')
.format('LT');
Run Code Online (Sandbox Code Playgroud)
您应该尽最大努力使用实际的处理程序。现在你可以用持续时间做一些很酷的事情,但这更简洁。
编辑:
正如在不同的答案中提到的:
moment('2:00:00 PM', 'h:mm:ss A')
Run Code Online (Sandbox Code Playgroud)
如果您正在处理该格式,则这是必要的。无论如何 - 为时刻对象添加/减去分钟/小时是微不足道的。将无效字符串传递给 moment 对象本身就是一个不同的问题。;)
| 归档时间: |
|
| 查看次数: |
40264 次 |
| 最近记录: |