date.toLocaleString(options) 不起作用 javascript

les*_*ore 3 javascript date

我对 JS 很陌生,需要一些帮助。

我想在 toLocaleString() 的帮助下格式化日期。根据标准,第一个参数 'locales' 可以省略。我的代码看起来像:

    let myDate = new Date(2014, 0, 30)
    let options = {
                year: '2-digit',
                month: '2-digit',
                day: '2-digit'
            };
    let formattedDate = myDate.toLocaleString(options);
    
    console.log(formattedDate);
Run Code Online (Sandbox Code Playgroud)

Sco*_*cus 7

虽然您可以跳过第一个参数,而无需在您的情况下为其提供任何内容,但您将无法通过该options参数获得想要的结果。

以下是几个版本的工作代码:

let date = new Date(2014, 0, 30);

let options = {
            year: '2-digit',
            month: '2-digit',
            day: '2-digit'
        };

console.log(date.toLocaleString('en-us', options));
console.log(date.toLocaleString(undefined, options));
console.log(date.toLocaleString(options));

options.timeZone = 'UTC';
options.timeZoneName = 'short';

console.log(date.toLocaleString('en-US', options));


// sometimes even the US needs 24-hour time
console.log(date.toLocaleString('en-US', { hour12: false }));
Run Code Online (Sandbox Code Playgroud)


Her*_*key 5

第一个参数toLocaleString不是可选的,但您可以传递undefined给它。

let date = new Date(2014, 0, 30)
let options = {
            year: '2-digit',
            month: '2-digit',
            day: '2-digit'
        };
let formattedDate = date.toLocaleString(undefined, options);
console.log(formattedDate);
Run Code Online (Sandbox Code Playgroud)

  • 不,您不能省略第一个参数而不同时省略第二个参数。您自己的答案显示了 Chrome 上第三个 console.log 的完整日期。链接中显示的语法是“[locales[, options]]”,这意味着仅区域设置、区域设置和选项,或两者都不。如果语言环境如您所说是可选的,那么它将是“[[语言环境],[选项]]”。 (4认同)