簡體   English   中英

在 JavaScript 中刪除日期中的尾隨零

[英]Remove trailing zeroes in date in JavaScript

我正在使用當前格式來生成 JavaScript 日期:

var date = visitdate;
var newdate = date.split("/").reverse().join("-");

例如,我希望這會返回 1900-01-01,但實際上返回的是 1900-01-0100。

我試過使用 slice 來修剪它,但這只是結束了一天的切片,並且仍然添加了零。 似乎沒有辦法擺脫它們。 有沒有辦法刪除它們?

您可以編寫如下所示的函數以及您可以更改的任何格式

      function formatDate(date) {
      var hours = date.getHours();
      var minutes = date.getMinutes();
      var ampm = hours >= 12 ? 'pm' : 'am';
      hours = hours % 12;
      hours = hours ? hours : 12; // the hour '0' should be '12'
      hours = hours < 10 ? '0'+hours : hours;
      minutes = minutes < 10 ? '0'+minutes : minutes;
      var strTime = hours + ':' + minutes + ' ' + ampm;

      var Month = date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1;
      var Date = date.getDate() < 10 ? '0'+date.getDate() : date.getDate();
      var strDate = Month + "/" + Date + "/" + date.getFullYear();
      return strDate + " " + strTime;
    }

或者在您的情況下,如果您不想要時間,只需從函數返回中刪除 strTime

假設輸入是“01/01/1900 00:00” - 在中間添加一個 .split(" ") ,如下所示:

"01/01/1900 00:00".split(" ")[0].split("/").reverse().join("-");

或者,如果您的輸入就像您說的“1900-01-01”,則跳過 reverse() :

"1900/01/01 00:00".split(" ")[0].split("/").join("-");

您還可以使用這樣的正則表達式從日期字符串中提取信息:

var d = '1990/01/01 00:00';
var matches = d.match(/^(\d+)\/(\d+)\/(\d+) (\d+):(\d+)$/);
if(matches){
  var year    = matches[1]
    , month   = matches[2]
    , day     = matches[3]
    , hour    = matches[4]
    , minutes = matches[5];
  console.log(year+'-'+month+'-'+day);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM