我是javascript的新手,并尝试获取部分字符串并对其进行格式化。
我有一个字符串:
update_time="THU 2017-06-29 23:41:13 ET"
我希望将日期格式化为:06/29/2017
任何帮助将不胜感激
答案 0 :(得分:1)
您在javascript中有str.substr(Begin, Length)
方法。以下代码将为您提供正确的字符串部分。
update_time="THU 2017-06-29 23:41:13 ET"
new_format = update_time.substr(9,2) + '/' + update_time.substr(12,2) + '/' + update_time.substr(4,4)
结果是var new_format
,其字符串为06/29/2017
。
答案 1 :(得分:1)
You could use this regular expression. It detects anything formatted as yyyy-dd-mm and formats it as dd/mm/yyyy
new_time = update_time.replace(/.*(\d{4})-(\d{2})-(\d{2}).*/, "$2/$3/$1");
If you want to keep the original string in place, but just change the date, then remove the .*
from both sides.
答案 2 :(得分:0)
最好使用空格split
,然后使用第二个元素构建日期并使用toLocaleDateString()
new Date(update_time.split(' ')[1]).toLocaleDateString()
答案 3 :(得分:0)
function getDateFormat(data){
if (!data) return null;
let dateObj = new Date(parseInt(data));
let date = dateObj.getDate();
let month = dateObj.getMonth();
let year = dateObj.getFullYear();
let time = dateObj.getHours();
let minutes = dateObj.getMinutes();
let seconds = dateObj.getSeconds();
if (time > 12){
time = time - 12;
time = time + ':' + minutes + ':' + seconds + ' PM';
}else{
time = time + ':' + minutes + ':' + seconds + ' AM';
}
date = date + ' - ' + month + ' - ' + year;
return {
date: date,
time: time
}
}
此功能在日期字符串中不起作用。
如果您有以毫秒为单位的日期,则可以使用我的方法正确获取日期和时间。
只需将毫秒传递给我的函数,它就会返回一个包含日期和时间的对象。
答案 4 :(得分:-1)
您可以使用默认JavaScript函数:
var update_time="THU 2017-06-29 23:41:13 ET"
更新: 正如RobG解释的那样,我们不能仅使用Date对象进行解析。所以我们可以使用正则表达式或拆分函数
var dateComponents = update_time.split(' ')[1].split('-'); //["2017", "06", "29"]
var formatedDate = `${dateComponents[1]}/${dateComponents[2]}/${dateComponents[0]}`;
console.log(formatedDate);
或者您可以选择使用momentJs library。