显示日期和月份,根据区域设置没有年份

Jan*_*Doe 1 javascript formatting localization date momentjs

有没有更好的方法可以从包含位置适当分隔符的日期中只获取日期和月份?

我有一个先获取分隔符的解决方案:

 function getDateSep() {
   var temp = moment().format('L');
   var locale = moment().locale;
   var datesep = temp.substring(5, 6);
   return datesep;
}
Run Code Online (Sandbox Code Playgroud)

然后像这样构建日期:

var sep = function getDateSep()
var date = date.format('D' + sep + 'M'+ sep)
Run Code Online (Sandbox Code Playgroud)

是否有动态构建整个日期的解决方案?

我想要达到的结果是: 31.01 (dd.mm) 31/01 (dd/mm) 01.31 (mm.dd) 01/31 (mm/dd) 等

Pin*_*eda 7

你有没有考虑使用Date#toLocaleDateString而不是monentjs

它需要一个 JS Date 对象和选项以您指定的格式输出区域设置日期。

例子:

var date = new Date();
var options = { day: 'numeric', month: 'short' };

console.log(date.toLocaleDateString('en-GB', options));
// outputs: Feb 24

var numeric = { day: 'numeric', month: 'numeric' };

console.log(date.toLocaleDateString('en-GB', numeric));
// outputs: 24/02
Run Code Online (Sandbox Code Playgroud)

正如评论中所指出的,确保您的目标平台支持上述toLocaleDateString方法是值得的options。例如,Android webview 目前不支持这种方法,详情见toLocaleDateString's Browser_compatibility

  • 如果您使用*未定义*作为语言,它将采用浏览器的默认语言。 (3认同)