jquery 如何在JavaScript中将字符串' dd/mm/yy hh:MM:ss '转换为日期?

n9vozmp4  于 11个月前  发布在  jQuery
关注(0)|答案(7)|浏览(111)

我已经这样做

var d='dd/mm/yy hh:MM:ss';
    var d1=d.split(" ");
    var date=d1[0].split("/");
    var time=d1[1].split(":");
    var dd=date[0];
    var mm=date[1]-1;
    var yy=date[2];
    var hh=time[0];
    var min=time[1];
    var ss=time[2];
    var fromdt= new Date("20"+yy,mm-1,dd,hh,min,ss);

字符串
有没有什么方法可以使用jQuery或JavaScript来实现?

zaqlnxep

zaqlnxep1#

如果您正在寻找jquery或JavaScript中的替代方案,那么您可以使用Moment.js,在这里您可以在JavaScript中解析修改显示日期。
举例说明:

var date= moment("06/06/2015 11:11:11").format('DD-MMM-YYYY');

字符串

vjhs03f7

vjhs03f72#

这将工作,无论时区的格式dd/mm/yyy hh:mm:ss只。它也不依赖于第三方软件包:

let dtStr = "12/03/2010 09:55:35"

console.log(strToDate(dtStr));  // Fri Mar 12 2010 09:55:35

function strToDate(dtStr) {
  if (!dtStr) return null
  let dateParts = dtStr.split("/");
  let timeParts = dateParts[2].split(" ")[1].split(":");
  dateParts[2] = dateParts[2].split(" ")[0];
  // month is 0-based, that's why we need dataParts[1] - 1
  return dateObject = new Date(+dateParts[2], dateParts[1] - 1, +dateParts[0], timeParts[0], timeParts[1], timeParts[2]);
}

字符串

m4pnthwp

m4pnthwp3#

Date.parse()怎么样?

new Date( Date.parse("05/12/05 11:11:11") );
// Thu May 12 2005 11:11:11 GMT+0200 (CEST)

字符串
生成的输出是本地时区的,并且在不同时区的浏览器中会有所不同。

rdlzhqv9

rdlzhqv94#

我们可以使用moment js将任何本地日期格式转换为datetime数据类型。

密码:

moment('<local date value>','<local date format>').format('<expected convert format>')

字符串

示例:

moment('26/05/1986 00:00', 'DD/MM/YYYY HH:mm').format("MM/DD/YYYY HH:mm");


则输出将为05/26/1986 00:00
欢呼

bksxznpy

bksxznpy5#

Date#parse应该能够解析字符串。我还建议查看npm包moment的日期操作

kulphzqa

kulphzqa6#

从你的代码看,你似乎试图将字符串转换为日期,并且你也试图获取上个月。如果是,那么你可以重建你的代码如下:

Date.prototype.SubtractMonth = function(numberOfMonths) {
var d = this;
d.setMonth(d.getMonth() - numberOfMonths);
return d;
}

$(document).ready(function() {
     var dateString='2015-06-17T18:30:12';
    var d = new Date(dateString);
    alert(d.SubtractMonth(1));
});

字符串

ig9co6j1

ig9co6j17#

谢谢,@sean-coley,你的回答帮了我很多,但它给了我不同时区的(本地)时间。我还将Date.UTC添加到新的Date函数中,因此结果时间将与输入相同

let dtStr = "12/03/2010 09:55:35"

console.log(strToDate(dtStr));  // Fri Mar 12 2010 09:55:35

function strToDate(dtStr) {
  if (!dtStr) return null
  let dateParts = dtStr.split("/");
  let timeParts = dateParts[2].split(" ")[1].split(":");
  dateParts[2] = dateParts[2].split(" ")[0];
  // month is 0-based, that's why we need dataParts[1] - 1
  return dateObject = new Date(Date.UTC(+dateParts[2], dateParts[1] - 1, +dateParts[0], timeParts[0], timeParts[1], timeParts[2]));
}

字符串

相关问题