【问题标题】:How to remove Time from dateTime? [duplicate]如何从日期时间中删除时间? [复制]
【发布时间】:2019-09-10 09:44:10
【问题描述】:

我收到 2019-09-10T00:00:00 作为 API 的响应,所以我想删除时间部分,只想要 2019-09-10 strong> 结果。

$('<td>').text(item['Date']),
  $('<td>').text(item['Time In']),
$('<td>').text(item['Time Out'])

这就是我的代码的样子,现在我想更改这三个。

【问题讨论】:

  • '2019-09-10T00:00:00'.substr(0,10) 为我完成了这项工作。

标签: javascript date


【解决方案1】:

使用 split 并在 'T' 上拆分日期

 var a='2019-09-10T00:00:00';
 console.log(a.split('T')[0])

【讨论】:

  • 嘿,如果我想要 2019-09-10T16:53:37 的“04:53:37 PM”作为输出怎么办?
  • 使用 [1] 而不是 [0]
  • 我做了完全一样的事,但我得到了 hh:mm:ss 的时间,但我也希望 AM/PM 有时间。
【解决方案2】:

您可以通过使用日期对象来制作一些通用的解决方案。

function formatDate(date, format ) {
  var dd = date.getDate();
  var mm = date.getMonth()+1; 
  var yyyy = date.getFullYear();
  
  if(dd<10) dd='0'+dd;
  if(mm<10) mm='0'+mm;

  switch(format) {
    case 'm-d-y': return mm+'-'+dd+'-'+yyyy;
    case 'm/d/y': return mm+'/'+dd+'/'+yyyy;
    case 'd-m-y': return dd+'-'+mm+'-'+yyyy;
    case 'd/m/y': return dd+'/'+mm+'/'+yyyy;
    default: return mm+'-'+dd+'-'+yyyy;
  }
}

const d = '2019-09-10T00:00:00';
console.log(formatDate(new Date(d), 'm/d/y'));

【讨论】:

  • 鉴于这只是对原始字符串中已有的数字进行重新排序,为什么要使用 Date 对象?如果这就是解决方案,how to format a date 上已经有很多问题和答案。
  • 假设您将“2019-09-10 10:00 AM”作为日期,在这种情况下,接受的答案将失败。如果我们得到日期字符串为“2019-11-1T00:00:00”,那么您提出的解决方案也将失败。 ('2019-09-10T00:00:00'.substr(0,10))
  • 您的回答也会因new Date("2019-11-1T00:00:00") 而失败。见Why does Date.parse give incorrect results?但这不是OP格式。
猜你喜欢
  • 2012-12-26
  • 2012-11-23
  • 2020-01-23
  • 2019-07-05
  • 2018-12-14
  • 1970-01-01
  • 2017-09-09
  • 1970-01-01
  • 2019-05-25
相关资源
最近更新 更多