typescript DayJs -如何用加号格式显示日期?

vddsk6oq  于 2023-05-01  发布在  TypeScript
关注(0)|答案(2)|浏览(173)

我在我的typescript/javascript代码中使用dayjs。我想将DayJs日期转换为以下格式。怎么做?
2020-04-25T00:00:00+00:00
我试过了-

dayjs().format('YYYY-MM-DD hh:mm:ss Z');

但是,它给出的日期看起来与我想要的格式不同。例如-

2020-04-25T00:00:00.000Z
ljo96ir5

ljo96ir51#

要在DayJS中格式化字符串以显示加号,您可以使用格式字符串YYYY-MM-DDTHH:mm:ssZ,其中T是分隔日期和时间的文字字符串“T”,Z表示±hh:mm格式的时区偏移。让我知道这个代码是否适合你。

const date = dayjs(); // replace with your DayJS date object
const formattedDate = date.format('YYYY-MM-DDTHH:mm:ssZ');
console.log(formattedDate); // prints something like 2020-04-25T00:00:00+00:00
<script src="https://cdnjs.cloudflare.com/ajax/libs/dayjs/1.11.7/dayjs.min.js"></script>
lymnna71

lymnna712#

不需要任何第三方日期库。使用本机Intl.DateTimeFormat
Intl.DateTimeFormat.prototype.formatToParts()
下面是如何使用此方法的示例。您需要修改它以获得所需的结果:

function format(dateObject){

    let dtf = new Intl.DateTimeFormat("en-US", {
    year: 'numeric',
    month: 'numeric',
    day: 'numeric',
    hour: 'numeric',
    minute: 'numeric',
    second: 'numeric'
  });
  
  var parts = dtf.formatToParts(dateObject);
  var fmtArr = ["year","month","day","hour","minute","second"];
  var str = "";
  for (var i = 0; i < fmtArr.length; i++) {
    if(i===1 || i===2){
      str += "-";
    }
    if(i===3){
       str += " ";
    }
    if(i>=4){
      str += ":";
    }
    for (var ii = 0; ii < parts.length; ii++) {
    let type = parts[ii]["type"]
    let value = parts[ii]["value"]
      if(fmtArr[i]===type){
        str = str += value;
      }
    }
  }
  return str;
}
console.log(format(Date.now()));

相关问题