Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/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 获取给定日期时间字符串和日期的日期格式_Javascript_Date_Datetime_Momentjs - Fatal编程技术网

Javascript 获取给定日期时间字符串和日期的日期格式

Javascript 获取给定日期时间字符串和日期的日期格式,javascript,date,datetime,momentjs,Javascript,Date,Datetime,Momentjs,假设我有某个事件的日期和时间信息,加上可以是任何格式的匹配日期字符串,如何获取日期字符串的格式(例如,yyy-MM-DD HH:MM) 例子 如果我有: var date = new Date(2006, 0, 2, 15, 4, 0, 0); var dateString1 = "Monday, January 2, 2006 15:04" var dateString2 = "02 Jan 2006 - 3:04PM" var dateFormat

假设我有某个事件的日期和时间信息,加上可以是任何格式的匹配日期字符串,如何获取日期字符串的格式(例如,
yyy-MM-DD HH:MM

例子 如果我有:

var date = new Date(2006, 0, 2, 15, 4, 0, 0);

var dateString1 = "Monday, January 2, 2006 15:04"
var dateString2 = "02 Jan 2006 - 3:04PM"
var dateFormat1 = "dddd, MMMM D, YYYY HH:mm"
var dateFormat2 = "DD MMM YYYY - H:MMA"
如何获取:

var date = new Date(2006, 0, 2, 15, 4, 0, 0);

var dateString1 = "Monday, January 2, 2006 15:04"
var dateString2 = "02 Jan 2006 - 3:04PM"
var dateFormat1 = "dddd, MMMM D, YYYY HH:mm"
var dateFormat2 = "DD MMM YYYY - H:MMA"
上下文中的示例 我有HTML元素
11 Feb•20h00
。我想从datetime属性中获取时间,添加一小时(或其他一些操作),然后以内部文本中的任何格式输出它。在本例中,输出为
11 Feb•21h00
。内部文本中的任何格式都是可能的

奖金:

var date = new Date(2006, 0, 2, 15, 4, 0, 0);

var dateString1 = "Monday, January 2, 2006 15:04"
var dateString2 = "02 Jan 2006 - 3:04PM"
var dateFormat1 = "dddd, MMMM D, YYYY HH:mm"
var dateFormat2 = "DD MMM YYYY - H:MMA"
如果我也能处理时区或UTC偏移,那就更好了,例如

var dateString3 = "Monday, January 2, 2006 15:04 MST"
var dateString4 = "Monday, January 2, 2006 15:04 -0700"

var dateFormat3 = "dddd, MMMM D, YYYY HH:mm z"
var dateFormat4 = "dddd, MMMM D, YYYY HH:mm ZZ"


我想一些复杂的正则表达式可以做到这一点,但是有没有更优雅的方法呢?

这听起来像是一个简单的方法。你的最终目标是什么?你为什么要这么做?你的格式组合有限吗?如果对它们进行枚举,则从
日期
实例创建格式化字符串,并检查它是否等于传入字符串。@Igor,我想处理
元素的内部文本,可以是任何格式。我希望新的datetime以原始格式显示。您可以尝试,如果成功,则读取结果实例的
.format
属性。然而,如果你最终决定这样做,你只需要知道这将是非常容易出错的。这需要解析你认为可能是其组件的输入,然后尝试找出它们的显示顺序。对于某些格式,无法确定,例如,19年11月12日可能是11月12日、12月11日或11月19日。这一年也是模棱两可的。您可能能够让它为可能的格式的子集工作,但肯定不是全部都在使用中。