Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将格式设置为在{time}匹配{dateWithoutYear}`_Javascript_Datetime - Fatal编程技术网

Javascript 如何将格式设置为在{time}匹配{dateWithoutYear}`

Javascript 如何将格式设置为在{time}匹配{dateWithoutYear}`,javascript,datetime,Javascript,Datetime,使用Intl.DateTimeFormat,我可以使用dateStyle和timeStyle获得日期和时间之间的单词“at”,如下所示。如果没有“12月20日下午2:23”这一年,是否可能获得完全相同的产出 澄清编辑:这需要在所有语言环境下“至少”作为英语版本工作 这个问题不是重复的,也不是任何其他问题,因为它询问如何实现此处未讨论的特定格式。 没有“在”这个词,应该是“2月18日下午3:47”而不是“2月18日下午3:47”。对不起,请查看更新的答案。。。。在“虽然这段代码可能为这个问题提供了

使用Intl.DateTimeFormat,我可以使用
dateStyle
timeStyle
获得日期和时间之间的单词“at”,如下所示。如果没有“12月20日下午2:23”这一年,是否可能获得完全相同的产出

澄清编辑:这需要在所有语言环境下“至少”作为英语版本工作

这个问题不是重复的,也不是任何其他问题,因为它询问如何实现此处未讨论的特定格式。


没有“在”这个词,应该是“2月18日下午3:47”而不是“2月18日下午3:47”。对不起,请查看更新的答案。。。。在“虽然这段代码可能为这个问题提供了一个解决方案,但最好添加上下文,说明它为什么/如何工作。这可以帮助未来的用户学习并最终将这些知识应用到他们自己的代码中。在解释代码时,您也可能会收到用户的积极反馈/赞成票。很抱歉,您已经更新了问题,但它需要在所有语言环境下工作—不仅英语没有测试,而且我假设这只适用于英语?另外,我更希望不必输入时刻。简单的回答是“不”。Int.DateTimeFormat生成的格式依赖于实现,并且不同语言之间不一致。这就是问题的关键所在。我不确定你所说的是什么意思,不同语言之间并不一致。很明显,它不会在不同的地方使用完全相同的词,但是这个概念仍然是一致的。例如,使用{dateStyle:'long',timeStyle:'short'}将在任何语言环境中的日期和时间之间添加一个单词。“依赖于实现”的意思是“由开发人员自行决定”,包括“long”和“short”解析为什么,以及是否使用一个单词将两者连接起来。您能解释一下如何做到这一点吗?除了使用dateStyle:“long”之外,我看不到任何方法来控制一个词是否用于连接这两个词,但这会迫使年份显示出来。你不能。我认为在这种情况下,Intl对象的最佳用途是使用formatToParts方法,如副本的可接受答案所示。如何翻译不同语言的“at”仍然是一个问题。您可以接受格式选项生成的任何内容,并使用类似于
的内容删除年份。替换(/[-\s\/]?\d{4}/,'')
。但即使是我测试的任何浏览器,OP也没有在iPad上显示时间部分,它只显示了一个日期,比如2021年2月19日。这就是导致format方法的默认输出实际上不可用的缺陷。
date = new Date(Date.UTC(2020, 11, 20, 3, 23, 16, 738));
new Intl.DateTimeFormat('en-US', { dateStyle: 'long', timeStyle: 'short' }).format(date);
=> "December 20, 2020 at 2:23 PM"
import moment from "moment";

let date = moment().format('MMM DD [at] h:mm A')
//  "Jan 30 at 2:30 PM "
console.log(date)