You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何比较服务器返回的特定格式日期与当前日期?附失败示例

解决自定义格式日期与当前日期的对比问题

你的代码之所以失败,核心问题是Date.parse()对'05-02-2024 10:20'这种非标准日期格式的解析兼容性极差——不同浏览器或运行环境可能会把它当成月-日-年解析,甚至直接返回NaN,导致时间戳对比完全失效。

针对用户只能在指定日期查看帖子的场景,正确的做法是手动解析日期字符串,构造可靠的Date对象后再对比:

function checkDate(){
  const current = new Date();
  const dateSentFromServer = '05-02-2024 10:20';
  // 拆分日期和时间部分
  const [dateSegment, timeSegment] = dateSentFromServer.split(' ');
  // 按'-'拆分日、月、年(这里假设格式是DD-MM-YYYY)
  const [day, month, year] = dateSegment.split('-').map(Number);
  // 按':'拆分时、分
  const [hours, minutes] = timeSegment.split(':').map(Number);
  
  // 构造标准Date对象:注意JS中月份是0-11,所以要减1
  const targetDate = new Date(year, month - 1, day, hours, minutes);
  
  // 逻辑:当前时间 >= 指定日期,返回true(允许查看),否则返回false
  return current >= targetDate;
}

注意事项

  • 如果服务器返回的日期格式是MM-DD-YYYY(月-日-年),只需要调整拆分后的变量顺序,把month和day交换即可:const [month, day, year] = dateSegment.split('-').map(Number);
  • 手动解析的方式完全规避了Date.parse()的兼容性问题,在任何JS运行环境下都能稳定工作。

内容的提问来源于stack exchange,提问作者jose

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 16:54:56