格式日期为"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"

Gar*_*ett 37 javascript facebook date date-format parse-platform

我需要格式化Parse的REST API for Facebookyyyy-MM-dd'T'HH:mm:ss.SSS'Z'指定的日期.我想知道什么是最轻量级的解决方案.

Rob*_*vey 70

调用toISOString()方法:

var dt = new Date("30 July 2010 15:05 UTC");
document.write(dt.toISOString());

// Output:
//  2010-07-30T15:05:00.000Z
Run Code Online (Sandbox Code Playgroud)

  • 你怎么能走另一个方向? (5认同)
  • @user1789573:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse (2认同)

jaf*_*ech 11

toISOString()将仅返回当前的 UTC 时间,而不是当前的本地时间。如果要以yyyy-MM-ddTHH:mm:ss.SSSZ格式获取当前本地时间,则应使用以下两种方法获取当前时间

方法一:

console.log(new Date(new Date().toString().split('GMT')[0]+' UTC').toISOString());
Run Code Online (Sandbox Code Playgroud)

方法二:

console.log(new Date(new Date().getTime() - new Date().getTimezoneOffset() * 60000).toISOString());
Run Code Online (Sandbox Code Playgroud)


Rev*_*jan 5

function converToLocalTime(serverDate) {

    var dt = new Date(Date.parse(serverDate));
    var localDate = dt;
    
    var gmt = localDate;
        var min = gmt.getTime() / 1000 / 60; // convert gmt date to minutes
        var localNow = new Date().getTimezoneOffset(); // get the timezone
        // offset in minutes
        var localTime = min - localNow; // get the local time

    var dateStr = new Date(localTime * 1000 * 60);
    // dateStr = dateStr.toISOString("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"); // this will return as just the server date format i.e., yyyy-MM-dd'T'HH:mm:ss.SSS'Z'
    dateStr = dateStr.toString("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
    return dateStr;
}
Run Code Online (Sandbox Code Playgroud)