【问题标题】:convert xml date and time using javascript使用javascript转换xml日期和时间
【发布时间】:2016-02-10 18:57:37
【问题描述】:

我正在从股票提要中提取一些信息。上次更新的时间戳是这样的:

2016-02-10 13:32:41

如何将其格式化为:

1:32:41pm
2/10/2016

这是我的变量声明:

time = x[0].getElementsByTagName("LASTDATETIME")[0].childNodes[0].nodeValue;

【问题讨论】:

  • 看这里momentjs.com
  • 请注意,2/10/2016 是一种模棱两可的格式,在大多数地方将被解释为 10 月 2 日。最好使用包含月份名称的格式来消除这种歧义。此外,重新格式化字符串可能比转换为 Date 来格式化输出更快、更简单。

标签: javascript xml date time reformatting


【解决方案1】:

您可以将字符串转换为有效的 javascript 日期,然后使用日期方法以您想要的方式显示它。例如将其转换为 javascript 日期,将其拆分为各个部分,然后进行组装。

var dateAndtime = x[0].getElementsByTagName("LASTDATETIME")[0].childNodes[0].nodeValue;
var date = dateAndtime.split(' ')[0];
var time = dateAndtime.split(' ')[1];
var year = date.split('-')[0];
var month = date.split('-')[1]-1;
var day = date.split('-')[2];
var hour = time.split(':')[0];
var minute = time.split(':')[1];
var second = time.split(':')[2];
var d = new Date(year, month, day, hour, minute, second);

【讨论】:

【解决方案2】:

无需创建日期,您只需解析并重新格式化字符串即可。无论如何你都必须解析字符串,不带日期重新格式化会更有效。

// 2016-02-10 13:32:41 => m/dd/yyyy h:mm:ssap
function reformatDateString(s) {
  var b = s.split(/\D/);
  var ap = b[3] < 12? 'am':'pm';
  var h =  b[3]%12 || 12;
  return h + ':' + b[4] + ':' + b[5] + ap +
         '\n' + +b[1] + '/' + b[2] + '/' + b[0];
}

document.write(reformatDateString('2016-02-10 13:32:41').replace('\n','<br>'))
document.write('<br>');
document.write(reformatDateString('2016-12-09 03:02:09').replace('\n','<br>'))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-10
    • 1970-01-01
    • 1970-01-01
    • 2013-03-18
    • 2015-09-29
    • 1970-01-01
    • 2014-06-13
    • 1970-01-01
    相关资源
    最近更新 更多