我如何转换" 4/10 / 2016,4:00:00 PM"到jpm下午4点?我需要使用子字符串还是我们有任何日期方法来进行此转换?请建议。
JSFiddle:https://goo.gl/rppCaq
答案 0 :(得分:2)
尝试使用String.prototype.match()
与RegExp
/(\d+)(?=:\d+:\d+)|([A-Z]+)(?=$)/g
匹配数字后跟":"
,后跟数字后跟":"
后跟数字,或{{1} }通过"A"
后跟输入结束; "Z"
,空格字符Array.prototype.join()
作为参数
" "
答案 1 :(得分:1)
由于您有自定义字符串作为日期,请尝试以下内容。它不是很漂亮,但会为这种情况完成工作。
var timeArr = "4/10/2016, 4:00:00PM".split(', ')[1].split(':');
var hr = timeArr[0];
var min = timeArr[1];
var sec = timeArr[2].match(/\d/g).join('');
var ampm = timeArr[2].replace(sec, '');
console.log(hr, min, sec, ampm );
答案 2 :(得分:1)
与其他答案一样,只是弄乱字符串:
function getHours(s) {
var b = (s.split(' ')[1] || '').match(/\d+|[a-z]+/ig) || [];
return /^\d+$/.test(b[0]) && /^[a-z]/i.test(b[3])? b[0] + ' ' + b[3] : 'can\'t parse that...';
}
document.write(getHours('4/10/2016, 4:00:00PM'));
document.write('<br>' + getHours('parse this'));