我是JS的新手,它可能是一个简单的查询,但是我为此进行了大量搜索,但未获得预期的结果。 我的查询是如何在javascript中将秒转换为(DD / MM / YYYY H:M:S AM / PM)格式。
我得到以下回应 1535004239
请帮助我。 在此先感谢
答案 0 :(得分:0)
您可以使用Date
此解决方案删除了所有时区,每个日期均与UTC关联
formatted
使用24H格式,而不是AM / PM
let value = 1535004239
// multiply by 1000 to get milisecond
console.log(new Date(value * 1000))
let formatted = (new Date(value * 1000)).toISOString()
formatted = formatted.replace("T", " ").replace(/\.?[0-9]*Z/, "")
console.log(formatted)
对于12H格式(可能是不正确的,因为我从未使用过)
function getFormattedDate(value) {
let date;
if (value) {
date = new Date(value * 1000)
} else {
date = new Date()
}
let suffix = "AM"
if (date.getUTCHours() > 12 || date.getUTCHours() === 0) {
date.setUTCHours(date.getUTCHours() - 12)
suffix = "PM"
}
let formatted = date.toISOString()
formatted = formatted.replace("T", " ").replace(/\.?[0-9]*Z/, "") + " " + suffix
return formatted;
}
console.log(new Date(1535004239 * 1000).toISOString() + " : " + getFormattedDate(1535004239))
console.log(new Date(1535148239 * 1000).toISOString() + " : " + getFormattedDate(1535148239))
console.log(new Date(1535030639 * 1000).toISOString() + " : " + getFormattedDate(1535030639))
console.log(new Date(1535028639 * 1000).toISOString() + " : " + getFormattedDate(1535028639))
console.log(new Date(1535155600 * 1000).toISOString() + " : " + getFormattedDate(1535155600))
console.log(new Date().toISOString() + " : " + getFormattedDate())
如果您可以使用任何格式,请选择默认的Date.toString
,因为它会提供有关时区的信息
答案 1 :(得分:0)
Date
对象始终在抢救中。您将在几秒钟内收到值1535004239。因此,首先您需要将其转换为毫秒。
var currentDate=1535004239*1000
接下来,您可以将值直接传递给Date构造函数。
var date=new Date(currentDate)
由于ES5中Date对象的某些特定预定义功能,您现在可以使用.toLocaleString()
函数来获取格式化的Date
var dateString=date.toLocaleString()
console.log(dateString)
上面的代码应该输出类似
23/08/2018, 11:33:59
编辑1 :使用下面的代码精确获取格式化的输出
在date
变量中有日期后,要获取所需的确切格式,请使用下面的代码
var currentDate= date.toLocaleDateString()+' '+date.toLocaleString('en-US', { hour: 'numeric', minute: 'numeric', second:'numeric', hour12: true })
这应该输出类似23/08/2018 11:33:59 AM