如何将字符串转换为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.
当前回答
我使用这个函数将任何Date对象转换为UTC Date对象。
function dateToUTC(date) {
return new Date(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds());
}
dateToUTC(new Date());
其他回答
你可以试试这个:
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'));
日期。解析几乎可以得到你想要的。它在上午/下午部分窒息,但通过一些黑客你可以让它工作:
var str = 'Sun Apr 25, 2010 3:30pm',
timestamp;
timestamp = Date.parse(str.replace(/[ap]m$/i, ''));
if(str.match(/pm$/i) >= 0) {
timestamp += 12 * 60 * 60 * 1000;
}
如果要从“dd/MM/yyyy”格式转换。这里有一个例子:
var pattern = /^(\d{1,2})\/(\d{1,2})\/(\d{4})$/;
var arrayDate = stringDate.match(pattern);
var dt = new Date(arrayDate[3], arrayDate[2] - 1, arrayDate[1]);
此解决方案适用于IE 9以下版本。
建议:我建议使用包含很多格式的日期包,因为时区和格式时间管理确实是一个大问题,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/
你还可以: mydate.toLocaleDateString ();