在您指定的输入上起作用的快速解决方案:
function parseTime( t ) { var d = new Date(); var time = t.match( /(d+)(?::(dd))?s*(p?)/ ); d.setHours( parseInt( time[1]) + (time[3] ? 12 : 0) ); d.setMinutes( parseInt( time[2]) || 0 ); return d;}var tests = [ '1:00 pm','1:00 p.m.','1:00 p','1:00pm','1:00p.m.','1:00p','1 pm', '1 p.m.','1 p','1pm','1p.m.', '1p', '13:00','13', '1a', '12', '12a', '12p', '12am', '12pm', '2400am', '2400pm', '2400', '1000', '100', '123', '2459', '2359', '2359am', '1100', '123p', '1234', '1', '9', '99', '999', '9999', '99999', '0000', '0011', '-1', 'mioaw' ];for ( var i = 0; i < tests.length; i++ ) { console.log( tests[i].padStart( 9, ' ' ) + " = " + parseTime(tests[i]) );}
它也应该适用于其他一些品种(例如,即使使用了am,它仍然可以使用-例如)。显然,这很粗糙,但也很轻巧(例如,使用它比完整的库便宜得多)。
警告:该代码不适用于12:00 AM等。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)