JavaScript:如何将“4/10/2016,4:00:00PM”转换为下午 4 点?

JavaScript : How do i convert "4/10/2016, 4:00:00PM" to 4 PM?

如何将“4/10/2016,4:00:00PM”转换为 javascript 下午 4 点?我需要使用子字符串还是我们有任何日期方法来进行这种转换?多多指教。

JSFiddle : https://goo.gl/rppCaq

尝试使用 String.prototype.match()RegExp /(\d+)(?=:\d+:\d+)|([A-Z]+)(?=$)/g 来匹配数字后跟 ":" 后跟数字后跟 ":" 后跟数字,或者 "A""Z" 后跟输入结束; Array.prototype.join() 以 space 字符 " " 作为参数

var date = "4/10/2016, 4:00:00PM";
var res = date.match(/(\d+)(?=:\d+:\d+)|([A-Z]+)(?=$)/g);
document.body.textContent = res.join(" ");

由于您有一个自定义字符串作为日期,请尝试如下操作。它不是很漂亮,但可以完成此场景的工作。

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 );

与其他答案一样,只是弄乱了字符串:

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