簡體   English   中英

Javascript function 將日期 yyyy/mm/dd 轉換為 dd/mm/yy

[英]Javascript function to convert date yyyy/mm/dd to dd/mm/yy

我正在嘗試在 javascript 上創建一個 function 以將我的數據庫中的日期以格式(yyyy-mm-dd)並在頁面上顯示為(dd/mm/yy)。

我將不勝感激任何幫助。

謝謝。

PD:如果您需要更多說明,請告訴我。

如果您確定來自服務器的日期有效,一個簡單的 RegExp 可以幫助您更改格式:

function formatDate (input) {
  var datePart = input.match(/\d+/g),
  year = datePart[0].substring(2), // get only two digits
  month = datePart[1], day = datePart[2];

  return day+'/'+month+'/'+year;
}

formatDate ('2010/01/18'); // "18/01/10"

假設您不擔心函數是動態的,最簡單的方法是:

function reformatDate(dateStr)
{
  dArr = dateStr.split("-");  // ex input "2010-01-18"
  return dArr[2]+ "/" +dArr[1]+ "/" +dArr[0].substring(2); //ex out: "18/01/10"
}

一行完成:

date.split("-").reverse().join("-");
// 2021-09-16 => 16-09-2021

使用此 js 函數中的任何一個將日期 yyyy/mm/dd 轉換為 dd/mm/yy

類型 1

function ChangeFormateDate(oldDate){
   var p = dateString.split(/\D/g)
   return [p[2],p[1],p[0] ].join("/")
}

類型 2

function ChangeFormateDate(oldDate)
{
   return oldDate.toString().split("/").reverse().join("/");
}

您可以使用以下方法調用這些函數:

ChangeFormateDate("2018/12/17") //"17/12/2018"

使用來自以下來源的函數 getDateFromFormat() 和 formatDate(): http ://mattkruse.com/javascript/date/source.html
例子也有

您可能還想考慮使用 date.js:

http://www.datejs.com

為了使您的應用程序面向未來,您可能希望使用 JavaScript 以 UTC 時間戳和格式返回時間。 這將允許您支持不同國家(在美國,我們最熟悉 DD-MM-YYYY 或實例)以及時區的不同格式。

試試這個:

function convertDate(dateString){
  var p = dateString.split(/\D/g)
  return [p[2],p[1],p[0] ].join("-")
}

convertDate("2001-9-11")//"11-9-2001"

您還可以使用解構和模板文字,以防您確定始終會收到YYYY-MM-DD的日期。

 const changeDateFormatTo = date => { const [yy, mm, dd] = date.split(/-/g); return `${dd}/${mm}/${yy}`; }; const formattedDate = changeDateFormatTo("2019-08-14"); console.log(`Formatted date is: ${formattedDate}`);

這是一個簡單的案例,但每個人都在使用字符串方法! 這有點野蠻:-)

Date 對象就是為此設置的,一旦你掌握了它,它會讓你走得更遠。 您的日期沒有時區,因此我建議您在進出途中都強制使用 UTC。 en-GB 語言環境強制使用 dd-mm,但您應該記住,說英語的用戶在日期格式上分為中間部分,每一半都發現另一半的格式完全混亂。 你真的應該嘗試讓你的數字日期格式適應用戶的偏好,特別是因為它很容易!

所以...

 new Vue({ el: '#vueRoot', data: {kennedy: '1963-11-22'}, computed:{ kennedyDdmm(){ return new Date(this.kennedy + 'T00:00:00Z') .toLocaleDateString('en-GB',{timeZone:'UTC'}) }, kennedyAuto(){ return new Date(this.kennedy + 'T00:00:00Z') .toLocaleDateString([],{timeZone:'UTC'}) } } })
 <script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script> <div id='vueRoot'> <h1>in => {{kennedy}}</h1> <h1>dd-MM-yy => {{kennedyDdmm}}</h1> <h1>respect user prefs => {{kennedyAuto}}</h1> </div>

function formatDate(date) {

  const [year, month, day] = date.split('-');

  return `${day}.${month}.${year}`;

};

暫無
暫無

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

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