var dateFormat = function(str) {
  var dateTimeArr = str.split('T');
  var ymdArr = dateTimeArr[0].split('-');
  var y = ymdArr[0];
  var m = Number(ymdArr[1]) - 1;
  var d = ymdArr[2];
  var sepTime = dateTimeArr[1];
  var resTime = sepTime.replace('Z', '').split(/¥+|¥-/)[0].split(/:/g);
  var h = resTime[0];
  var min = resTime[1];
  var sec = '00';
  var dateAttr = new Date(y, m, d, h, min, sec);
  var year = dateAttr.getFullYear();
  var monthAtrr = dateAttr.getMonth() ;
  var mNames = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
  var month = mNames[monthAtrr] ;
  var day = dateAttr.getDate();
  format_date = month + "¥u00a0" + day + ", " + year ;
  return format_date;
};

いろいろ試してみたらできました。
ですが、半角スペースを「¥u00a0」=「 」で表記していいものか疑問が残ります。
Unicodeの半角スペースを出力するユニコードエスケープは2種類あるらしいので、どちらも試してみたらこっちの方が上手くいきましたのでこのままにしておきます。
こちらの記事を参考しました。
createTextNodeで半角スペースを入れたい…