新日期('dd / mm / yyyy')代替newDate('mm / dd / yyyy')

时间:2018-06-28 14:16:07

标签: javascript date

是否可以将dd/mm/yyyy格式的日期输入newDate(例如03/01/2018),以便它返回对象Wed Jan 03 2018 00:00:00 GMT+0000 (Greenwich Mean Time) {}

如果我有一个日期03/01/2018,它将返回Thu Mar 01 2018 00:00:00 GMT+0000 (Greenwich Mean Time) {}……我不是在尝试传递mm/dd/yyyy格式。.

我看了很多关于此的帖子,找不到我的问题的答案。

3 个答案:

答案 0 :(得分:2)

您无法控制Date构造函数,因此需要以所需的格式为其提供日期。由于您是自己格式化日期,因此最好使用其他Date构造函数,该构造函数以year,monthIndex和day作为参数,因为在不同的浏览器和运行时中,它更具防弹性:

  function my_date(date_string) {
      var date_components = date_string.split("/");
      var day = date_components[0];
      var month = date_components[1];
      var year = date_components[2];
      return new Date(year, month - 1, day);
    }
    
    console.log(my_date("03/01/2018"));

日期的情况下,我几乎在我创建的每个JavaScript项目上都安装了moment库。

注意:代码段显示的结果可能有所不同;检查您的控制台。

答案 1 :(得分:0)

您可以像这样使用正则表达式:

var date = new Date("03-01-2018".replace( /(\d{2})-(\d{2})-(\d{4})/, "$2/$1/$3"))

答案 2 :(得分:0)

我建议您使用http://momentjs.com/中的momentjs。使用它可以很容易地输出您想要的任何格式。

moment().format('MMMM Do YYYY, h:mm:ss a'); // June 28th 2018, 10:30:09 pm
moment().format('dddd');                    // Thursday
moment().format("MMM Do YY");               // Jun 28th 18
moment().format('YYYY [escaped] YYYY');     // 2018 escaped 2018
moment().format();