如何在JavaScript中将秒转换为这种(23/08/2018 11:08:33 AM)格式?

时间:2018-08-28 08:51:37

标签: javascript

我是JS的新手,它可能是一个简单的查询,但是我为此进行了大量搜索,但未获得预期的结果。 我的查询是如何在javascript中将秒转换为(DD / MM / YYYY H:M:S AM / PM)格式。

我得到以下回应 1535004239

请帮助我。 在此先感谢

2 个答案:

答案 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