如何将javascript日期字符串转换为另一种格式

How to convert a javascript date string to another format?

本文关键字:转换 另一种 格式 字符串 日期 javascript      更新时间:2023-09-26

我有一个字符串"26-08-2016",我想把它转换成"2016-08-26"。如果可能的话,我更喜欢使用date对象。但恐怕一些正则表达式的解决方案是唯一可用的?

你可以试试

var date = "26-08-2016";

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

输入:26-08-2016

输出:2016-08-26

您是否已经尝试使用moment.js?

var mydate = moment("26-08-2016" , "DD-MM-YYYY").format("YYYY-MM-DD");

try this

montharray = [01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12];
var final_date = new Date("26-08-2016");     
var month_of_date = montharray[final_date.getMonth()];
final_date = final_date.getFullYear() + "-" + month_of_date + "-" + final_date.getDate();

Date对象确实公开了一个API,该API允许您从对象中获取某些值,例如日期、月份、小时和时区,这些值可用于格式化日期字符串。

使用Date对象方法的简单格式化示例。

var date = new Date();
var output = [date.getFullYear(), date.getMonth()+1, date.getDate()].join('-'); 
console.log( output ); //2016-8-26
更好的方法可能是编写一个格式化函数,像这样:
function formatDate(now) {
   var year = now.getFullYear();
   var month = now.getMonth()+1;
   var date = now.getDate();
   //Add '0' to month if less than 10
   month = (month.toString().length < 2)
      ? "0"+month.toString()
      : month;
   return [year, month, date].join('-');
   //return `${year}-${month}-${date}`; if you're using ES6
}
var now = new Date();
console.log(
   formatDate(now)
); // 2016-08-26

所有可用的方法都在mozilla docs: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getMonth