用javascript格式化日期直到毫秒

Formatting a date in javascript till the millisecond

本文关键字:日期 javascript 格式化      更新时间:2023-09-26

我们正在使用以下来自Microsoft的js-libhttps://ajax.aspnetcdn.com/ajax/4.0/1/MicrosoftAjax.js

var datetimehigh = new Date(2011,01,12,14,45,55,596);
var sDate =  datetimehigh.format("dd/MM/yyyy HH:mm:ss sss");

我无法使毫秒部分工作。请注意,该格式来自微软的MvcAjax库。

如果您使用的是本机Date javascript对象,您可以简单地使用.toISOString方法来获得一个以毫秒为单位的格式化字符串:

const date = new Date();
const dateString = date.toISOString(); // "2020-01-06T19:57:12.146Z"

请注意,使用.toString不会提供毫秒精度。

f表示:

"dd/MM/yyyy HH:mm:ss fff"

使用"S"表示毫秒格式:

"dd/MM/yyyy HH:mm:ss:SSS"

使用日期格式库,它应该是这样的:

var nowMilliseconds = new Date().format("yyyy-mm-dd HH:MM:ss l");

http://blog.stevenlevithan.com/archives/date-time-format

L,毫秒,两位

l(减号),持续毫秒,三位数

以下是我的操作方法:

function date_to_string_with_milliseconds(date){
  let date_str = date.toString() 
  let date_without_milliseconds = new Date(date_str) // truncated date since milliseconds are not included
  let milliseconds_delta = date - date_without_milliseconds
  let date_str_with_milliseconds = date_str.replace(/(^.*:'d'd:'d'd)(.*$)/, `$1:${milliseconds_delta}$2`)
  return date_str_with_milliseconds
}

用法:

date_to_string_with_milliseconds(new Date(Date.now())).toString()
// outputs 'Wed Nov 30 2022 16:40:42:991 GMT+0530 (India Standard Time)'

这样做有几个优点:

  1. 作为输出获得的日期字符串可以转换回Date对象。

  2. 这不会更改任何中的原始日期对象因为您只需要一个字符串表示。