JavaScript:我如何转换" 4/10 / 2016,4:00:00 PM"到下午4点?

时间:2016-03-03 23:58:27

标签: javascript date datetime datetime-format datetimeoffset

我如何转换" 4/10 / 2016,4:00:00 PM"到jpm下午4点?我需要使用子字符串还是我们有任何日期方法来进行此转换?请建议。

JSFiddle:https://goo.gl/rppCaq

3 个答案:

答案 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'));