繁体   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