如何将字符串转换为JavaScript日期对象?
var st = "date in some format"
var dt = new Date();
var dt_st = // st in Date format, same as dt.
如何将字符串转换为JavaScript日期对象?
var st = "date in some format"
var dt = new Date();
var dt_st = // st in Date format, same as dt.
当前回答
你可以试试这个:
function formatDate(userDOB) { const dob = new Date(userDOB); const monthNames = [ 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December' ]; const day = dob.getDate(); const monthIndex = dob.getMonth(); const year = dob.getFullYear(); // return day + ' ' + monthNames[monthIndex] + ' ' + year; return `${day} ${monthNames[monthIndex]} ${year}`; } console.log(formatDate('1982-08-10'));
其他回答
你还可以: mydate.toLocaleDateString ();
新的日期(2000,10,1)将给你“星期三11月1日2000 00:00:00 GMT+0100 (CET)”
0表示month,表示1月
对于那些正在寻找小巧而智能的解决方案的人:
String.prototype.toDate = function(format)
{
var normalized = this.replace(/[^a-zA-Z0-9]/g, '-');
var normalizedFormat= format.toLowerCase().replace(/[^a-zA-Z0-9]/g, '-');
var formatItems = normalizedFormat.split('-');
var dateItems = normalized.split('-');
var monthIndex = formatItems.indexOf("mm");
var dayIndex = formatItems.indexOf("dd");
var yearIndex = formatItems.indexOf("yyyy");
var hourIndex = formatItems.indexOf("hh");
var minutesIndex = formatItems.indexOf("ii");
var secondsIndex = formatItems.indexOf("ss");
var today = new Date();
var year = yearIndex>-1 ? dateItems[yearIndex] : today.getFullYear();
var month = monthIndex>-1 ? dateItems[monthIndex]-1 : today.getMonth()-1;
var day = dayIndex>-1 ? dateItems[dayIndex] : today.getDate();
var hour = hourIndex>-1 ? dateItems[hourIndex] : today.getHours();
var minute = minutesIndex>-1 ? dateItems[minutesIndex] : today.getMinutes();
var second = secondsIndex>-1 ? dateItems[secondsIndex] : today.getSeconds();
return new Date(year,month,day,hour,minute,second);
};
例子:
"22/03/2016 14:03:01".toDate("dd/mm/yyyy hh:ii:ss");
"2016-03-29 18:30:00".toDate("yyyy-mm-dd hh:ii:ss");
Var a = "13:15" var b = toDate(a, "h:m") / /警报(b); document . write (b); 函数toDate(dStr, format) { var now = new Date(); If (format == "h:m") { now.setHours(下游。substr (0, dStr.indexOf(“:”))); now.setMinutes(dStr.substr(dStr.indexOf(":") + 1)); now.setSeconds (0); 现在返回; 其他} 返回“格式无效”; }
建议:我建议使用包含很多格式的日期包,因为时区和格式时间管理确实是一个大问题,moment js解决了很多格式。你可以很容易地从一个简单的字符串解析日期,但我认为这是一个艰苦的工作,以支持所有格式和日期的变化。
更新:Moment现在已弃用,一个很好的Moment的替代品是datefns https://date-fns.org/
moment.js (http://momentjs.com/)是一个完整和良好的使用日期包,支持ISO 8601字符串。
您可以添加字符串日期和格式。
moment("12-25-1995", "MM-DD-YYYY");
你可以检查一个日期是否有效。
moment("not a real date").isValid(); //Returns false
一些显示示例
let dt = moment("02-01-2019", "MM-DD-YYYY");
console.log(dt.fromNow()+' |'+dt.format('LL'))
// output: "3 months ago | February 1, 2019"
看文档 http://momentjs.com/docs/#/parsing/string-format/