- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
函数排序日期有点问题。我想按 ASC 或 DESC 对所有日期进行排序,但排序不正确。
我的约会对象
let a = [
"03/12/2019", "17/10/2020", "02/12/2019", "08/12/2019", "13/02/2020",
"23/03/2020", "18/11/2020", "29/02/2020", "05/12/2019", "03/06/2020",
"06/05/2020", "09/09/2020", "28/10/2020", "07/04/2020", "27/04/2020",
"28/05/2020", "29/12/2019", "31/10/2020", "23/09/2020", "25/12/2019",
"14/01/2020", "30/09/2020", "18/05/2020", "14/06/2020", "25/04/2020",
"19/08/2020", "26/03/2020", "19/05/2020", "15/03/2020", "11/10/2020",
"25/04/2020", "16/12/2019", "14/08/2020", "19/08/2020", "28/02/2020",
"01/01/2020", "07/06/2020", "17/11/2020", "22/05/2020", "31/07/2020",
"20/01/2020", "07/02/2020", "18/08/2020", "16/02/2020", "13/03/2020",
"21/12/2019", "02/03/2020", "24/07/2020", "01/05/2020", "31/01/2020",
"25/11/2020", "07/07/2020", "16/07/2020", "06/07/2020", "16/09/2020",
"29/07/2020", "19/06/2020", "09/08/2020", "25/08/2020", "21/02/2020",
"30/11/2019", "04/06/2020", "06/09/2020", "10/09/2020", "26/11/2020",
"22/07/2020", "21/05/2020", "25/07/2020", "05/01/2020", "17/06/2020",
"14/07/2020"
];
函数排序
b.sort((d1, d2) => new Date(d1).getTime() - new Date(d2).getTime());
或替代
b.sort((b, a) => {
if (b > a) {
return 1;
}
if (b < a) {
return -1;
}
return 0;
})
最佳答案
切勿使用 new Date(string)
构造函数或 Date.parse()
解析日期字符串,因为这两种方法都不允许您提供特定格式或区域设置信息。 (Annoyingly, JavaScript's built-in Intl
does not support parsing, only formatting)。
JavaScript 的 new Date(string)
和 Date.parse(string)
函数使用倾向于使用用户计算机的区域设置来解析日期 - 如果用户正在使用Windows 的 en-US 设置没有意识到 Date.parse(string)
和 new Date(string)
会将日期解释为 MM/dd/yyyy
而不是他们正确的区域设置。然而,浏览器往往会尝试解析你扔给它们的任何东西,如果它们看到 12/31/2019
或 31/12/2019
那么它们都会被解析为 2019-12-31
无论他们的计算机区域设置如何 - 只有当他们被赋予 5/7/2019
时,事情才会分崩离析,例如这将被解释为 2019-05-07
如果他们在美国或 2019-07-05
如果他们在英国。
不幸的是,您需要手动解析它们或使用像 Moment.JS 这样经过同行评审的库(因为编写日期库很难)。
let dates = [ "03/12/2019", "17/10/2020", "02/12/2019", ... ];
function parseDate( ddMMyyyy ) {
const components = ddMMyyyy.split( '/' );
if( components.length != 3 ) return null;
const dd = parseInt( components[0] );
const MM = parseInt( components[1] );
const yyyy = parseInt( components[2] );
// Component range checking:
if( dd >= 1 && dd <= 31 && MM >= 1 && MM <= 12 && yyyy >= 0 && yyyy <= 9999 ) {
return new Date( yyyy, MM - 1, dd ); // `MM - 1` because JavaScript months are 0-based.
}
else {
return null;
}
}
let sortedParsedDates = dates
.map( parseDate )
.filter( dt => dt instanceof Date )
.sort( ( x, y ) => x.getTime() - y.getTime() );
关于javascript - 以 dd/mm/yyyy 格式对 Javascript 中的日期进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59349466/
我需要使用正则表达式验证格式为 dd/mm/yyyy 的日期字符串。 此正则表达式验证 dd/mm/yyyy,但不验证 31/02/4500 等无效日期: ^(0?[1-9]|[12][0-9]|3[
我需要检查给定字符串的日期。我得到的字符串不规则,我不想使用 Dateformat 或类似的东西。我试图避免出现多个异常。我需要 dd.MM.yyyy 和 MM.yyyy 和 yyyy 的正则表达式。
我想使用在这里找到的 jQuery 屏蔽输入插件 http://digitalbush.com/projects/masked-input-plugin/格式化日期。 我正在从数据库中提取数据以在页面
我正在尝试以更有效的方式根据当前日期找出当前财政年度(FY - 3 月至 4 月)。这是我到目前为止写的内容 public static void main(String[] args) {
我已经搜索了该网站,但没有找到接近我需要的答案。基本上我的日期正确显示为“2013-05-09”,但我想要的是“2013 年 3 月 19 日”或使其更好“3 月 19 日, 2013 年”。 请向我
我需要使用 C# 更改日期字符串的格式 来自:“06/16/2010”或“16/06/2010” 至:“2010-06-16” 你能帮我实现这个吗 谢谢 最佳答案 如果您已经将它作为 DateTime
我正在以 MMM-yyyy 格式从 View 中提交日期值,即“Apr-2019”作为字符串。我需要将字符串值转换为 .Net 支持的日期格式,如 dd-MM-yyyy 或 yyyy-MM-dd。这里
我有一个包含以下数据的平面文件 2/12/2016 2/3/2017 12/23/2017 04/23/2017 第一个是 M/dd/yyyy,第二个是 M/d/yyyy,其余日期格式为 MM/dd/
好吧,我已经和这个战斗了足够长的时间。我有一个正则表达式 ^(1[0-2]|0[1-9]|\d)\/(20\d{2}|19\d{2}|0(?!0)\d|[1-9]\d) 这将匹配 8/15、08/15
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: Extending JavaScript's Date.parse to allow for DD/MM/Y
我有 json 对象列表,其中一个字段是日期。问题是日期在 json 中以不同的方式写入。 大多数看起来像: "publishedDate": "2005-01-28" "publishedDat
这个问题已经有答案了: Generate & parse "Year-Month" values in text from Java (1 个回答) 已关闭 7 年前。 我有一个变量: YearMon
我对日期格式有一个奇怪的问题。就像,我正在使用 jquery 日期选择器,它设置为格式 dd/mm/yy。因此,当我在该字段中填写 01/09/2015 时,它应该意味着日期是 2015 年 9 月
我有以下日期, 24/04/2019 13/05/2019 12/04/2019 我想删除年份并将这些日期转换为以下格式, 24/04 13/05 12/04 这不是仅用于输出我想在该日期执行加法或申
“YYYY”和“yyyy”之间的确切区别是什么。我读过 this link ,它指出 A common mistake is to use YYYY. yyyy specifies the calen
我有一个日期列,其中日期格式为 2010-04-14 在 SQL Server 中。有没有办法将日期格式检索为 14/04/2010 在选择语句中? 最佳答案 试试这个: SELECT CONVERT
我有这个正则表达式:(\d{4})\/(\d{2,4})\/?(\w{2})?这似乎工作正常,但我想避免以下情况,例如:我有一个字符串“2020/2000/WEEEE”并且它匹配它。 它匹配的其他错误
这是用户输入日期的代码:(它必须是我的日期选择器,但表单必须将日期字段作为文本提交 - 不要问) 提交时,我在 javascript 中调用验证逻辑。我附上了当我尝试输入 01/01/2001 作为用
我正在尝试以 YYYY-YY 格式提取会计日期字符串的最后一年 (YY)。例如,这个“1999-00”的最后一年是 2000 年。 当前代码似乎涵盖了除此之外的大多数情况。 import pandas
这个问题已经有答案了: 已关闭11 年前。 Possible Duplicate: Conversion of Date 我从对话框中获取的日期为:5-1-2012 - 作为字符串。 我需要将其转换为
我是一名优秀的程序员,十分优秀!