替代toLocaleString()用于chrome浏览器

时间:2013-10-15 10:47:54

标签: javascript jquery datetime

 function tolocal(str)
 {
 var date, split, dSplit, tSplit, d, raw;
date = '';
split = str.split(' ');
if (split.length === 2) {
    dSplit = split[0].split('-');
    tSplit = split[1].split(':');
}
raw = d.toLocaleString().split(' GMT')[0];

 return raw.substring(raw.indexOf(", ")+2, raw.lastIndexOf(':')) + " " + raw.substring(raw.length-2,raw.length)
 }

以上代码适用于浏览器,我可以按以下格式获取输出。

2012年11月13日上午10:15

但是我无法在Chrome浏览器中实现相同的功能。还有其他功能可以帮助我实现相同的输出吗? date.toUTCString()提供了相同的结果,但我不确定它在功能方面与toLocaleString()有多么不同。

提前致谢。

3 个答案:

答案 0 :(得分:3)

也许你可以使用第三方库来做这样的事情:moment.js是一个很好的。 例如:

moment(d).format('MMMM Do, YYYY h:mms a');

答案 1 :(得分:3)

手动完成:

// Where "date" is a Date object
function dateFormatUTC(date) {
  var months = [
    'January', 'February', 'March', 'April', 'May', 'June',
    'July', 'August', 'September', 'October', 'November', 'December'
  ];

  var hours = date.getUTCHours();
  if (hours < 10) hours = '0' + hours;

  var minutes = date.getUTCMinutes();
  if (hours < 10) hours = '0' + hours;

  var monthName = months[date.getUTCMonth()];
  var timeOfDay = hours < 12 ? 'AM' : 'PM';

  return monthName + ' ' + date.getUTCDate() + ', ' +
         date.getUTCFullYear() + ' ' + hours + ':' + minutes + timeOfDay;
}

答案 2 :(得分:1)

您可以尝试使用以下选项:

  var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));
          // request a weekday along with a long date
   var options = {weekday: "long", year: "numeric", month: "long", day: "numeric"};
     // an application may want to use UTC and make that visible
    options.timeZone = "UTC";
    options.timeZoneName = "short";
    alert(date.toLocaleString("en-US", options));

请找到参考@

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleString