Javascript函数将日期yyyy / mm / dd转换为dd / mm / yy

时间:2010-01-18 14:46:21

标签: javascript function date

我正在尝试在javascript上创建一个函数,以格式(yyyy-mm-dd)从我的数据库中显示日期,并在页面上显示为(dd / mm / yy)。

我将不胜感激。

感谢。

PD:如果您需要更多说明,请告诉我。

8 个答案:

答案 0 :(得分:14)

如果您确定来自服务器的日期有效,可以使用简单的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"

答案 1 :(得分:13)

最简单的方法,假设你不关心动态函数:

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"
}

答案 2 :(得分:2)

使用此源中的函数getDateFromFormat()和formatDate(): http://mattkruse.com/javascript/date/source.html
例子也在那里

答案 3 :(得分:1)

您可能还想查看使用date.js:

http://www.datejs.com

为了保护您的应用程序,您可能希望以UTC时间戳返回时间并使用JavaScript格式化。这将允许您支持不同国家/地区的不同格式(在美国,我们最熟悉DD-MM-YYYY或实例)以及时区。

答案 4 :(得分:1)

使用此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"

答案 5 :(得分:0)

这是一个简单的例子,但是每个人都在使用字符串方法!这有点野蛮:-)

所有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>

答案 6 :(得分:0)

如果您确定总是收到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}`);

答案 7 :(得分:0)

尝试一下:

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

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