
1 celisee 2024-02-29 09:43:44 +08:00 昨天就接到通知,统一排查了一遍 这种拼接年份的??? |
2 cc666 2024-02-29 09:47:02 +08:00 可能是说表单的时间起始和结束范围?选择一年前的数据是 2023-02-29 到 2024-02-29 ,2023-02-29 是个拼接错误? |
3 exploretheworld OP @celisee 算一年前只减年份 |
4 learnshare 2024-02-29 09:53:05 +08:00 new Date('2023-02-29') => '2023/3/1 08:00:00' 自动纠错或者报异常,都是尴尬的 |
5 Hopetree 2024-02-29 09:59:10 +08:00 这是 Python 的,不会报错,一年前是 2023-02-28 ```python from datetime import datetime from dateutil.relativedelta import relativedelta current_date = datetime.now() current_date - relativedelta(years=1) datetime.datetime(2023, 2, 28, 9, 57, 56, 185222) ``` |
6 binaryify 2024-02-29 09:59:16 +08:00 |
7 chobitssp 2024-02-29 10:07:37 +08:00 用 moment 不才算偷懒吗 var date = '2024-02-29'; moment(date).add(-1, 'years').format('YYYY-MM-DD'); date.replace(/^\d{4}/, t => parseInt(t, 10) - 1); date.split('-').map((t, i) => i > 0 ? t : parseInt(t, 10) - 1).join('-'); |
8 hi2hi 2024-02-29 10:10:53 +08:00 我自己撸了一个按自然月变更时间的方法,然后每次都是直接增减月数 |
9 sayitagain 2024-02-29 10:12:34 +08:00 问题不大,一个懒可以撑四年, |
10 NessajCN 2024-02-29 10:16:49 +08:00 只有不懂啥叫 unix timestamp 的培训班前端才会觉得那样是偷懒 |
11 banmuyutian 2024-02-29 10:22:11 +08:00 |
12 AllenCai 2024-02-29 10:23:56 +08:00 if (date.includes('-29')) { date= date.replace('-29', '-28') } 修复一下,突出一个死性不改 |
13 AllenCai 2024-02-29 10:26:44 +08:00 if (date.includes('02-29')) { date= date.replace('02-29', '02-28') } 加上月份,这就完美了 |
14 treblex 2024-02-29 10:27:16 +08:00 前几天改了个,自定义写的日期选择器,那哥们儿直接每个月 31 天,然后也不写组件,每个页面拷贝一份,找的头都大了 |
15 pkoukk 2024-02-29 10:27:33 +08:00 有库还徒手拼?不知道该说懒还是勤快... |
16 lichao 2024-02-29 10:31:31 +08:00 3.1.2 :001 > Time.current.to_date - 1.year => Tue, 28 Feb 2023 |
17 74123gzy 2024-02-29 10:57:33 +08:00 还好我们全是组件跟库 |
18 yinmin 2024-02-29 11:07:08 +08:00 via iPhone 算法供参考: 日期型变量 d ,获取日期 d 对应月份的最后一天 date(d.year,d.month,1).addmonth(1).addday(-1) |
19 lhstock 2024-02-29 11:13:05 +08:00 没做过相关业务,我怎么感觉这不是单纯的技术问题;应该还要考虑产品或行业规范来实现吧,比如会员一年,按 366 还是 365 算呢; 具体点就是 24.02.29 开通的,应该什么时候过期;客户对于这个时间会不会有争议呢; 同样的问题还有一个月。2.1 开通一个月,那应该什么时候到期呢 确实没写过相关的业务,纯好奇不是杠 |
22 xR13zp0h67njQr2S 2024-02-29 13:20:55 +08:00 手拼不是更累 |
23 imlinhanchao 2024-02-29 13:25:08 +08:00 明天就正常了 |
24 rainABC 2024-02-29 13:43:50 +08:00 时间问题是一个永恒的问题 |
25 lhstock 2024-02-29 14:13:44 +08:00 @NessajCN 我尝试换算 31556926 秒;计算未来几年的结果应该很难被用户接受吧;所以产品与用户对于年的定义是如何保持一致 ``` const timer = new Date().getTime(); const test = (n = 0) => new Date(+timer + n * 31556926*1000).toLocaleDateString(); console.log(test(0)) console.log(test(1)) console.log(test(2)) console.log(test(3)) console.log(test(4)) // 输出如下: 2024/2/29 2025/2/28 2026/3/1 2027/3/1 2028/2/29 ``` |
26 106npo 2024-02-29 14:16:38 +08:00 提工单,安排明天修.明天直接结单,完美. |
28 lhstock 2024-02-29 14:24:18 +08:00 @NessajCN 带入一个场景 我今天办了年会,明天是 28 到期,我再办又是 3.1 => 3.1 => 2.29 => 2.28 反复循环, |
29 kneo 2024-02-29 14:26:25 +08:00 via Android 这都能错,我是难以理解。 |
31 NessajCN 2024-02-29 14:29:08 +08:00 @lhstock 所以可否再描述一下这到底哪儿不对了? 你是觉得要每年都应该同一天办年会的话,那 29 号根本就不可能被设为年会日,相应的计算方法也不会按一年来加减 |
32 NessajCN 2024-02-29 14:31:27 +08:00 @lhstock 更正一下,年会要同一天也同样是这样算最好,因为你不可能安排在 2 月 29 做固定年会日,而其他日期的话这样算是不会错的 |
33 hubaq 2024-02-29 14:44:44 +08:00 |
35 8355 2024-02-29 14:50:10 +08:00 这种代码,说真的,自己懒的写写个注释都能自动生成了。。 |
36 vituralfuture 2024-02-29 14:50:41 +08:00 via Android 日期,时间这种有标准的东西最好不要自己造轮子或者自己手动完成某些功能,因为非常容易忽略一些细节,比如大部分人都不会考虑的夏令时,润秒,时区。类似的还有 cookie ,http 协议等各种网络协议,又琐碎又容易出错 |
37 nzynzynzy 2024-02-29 15:26:16 +08:00 一个环境和一个环境格式都不一样,不知道拼接的意义是啥,new Date()也不费啥事 |
38 zhushishi 2024-02-29 16:25:29 +08:00 总有 2b 喜欢这么写。。。 |
39 jeansfish 2024-02-29 16:36:00 +08:00 |
40 Yuhyeong 2024-02-29 16:54:40 +08:00 /t/1019435 是你吗兄弟 |
41 rongsh 2024-02-29 17:47:23 +08:00 之前设置 iphone 专注模式中的工作模式到下午 5 点关闭,然而今天没有关闭。想知道有其他人遇到吗,会不会也是因为闰日这个原因导致的 bug 。 |
42 panbeta 2024-02-29 18:01:09 +08:00 好低级的错误。。。每 4 年一个 29 日属于常识了,写日期类逻辑必须用 calendar 处理,字符串拼接的算你们 |
43 Pastsong 2024-02-29 18:14:45 +08:00 日期时间这种全是坑的东西还有人不用库的。。 |
44 killuma 2024-02-29 18:50:44 +08:00 |
46 JensenQian 2024-02-29 19:21:10 +08:00 via Android |
47 DavidA 2024-02-29 23:24:36 +08:00 我甚至没看懂什么问题,谁来告诉我,错误的代码是什么样的? |
48 Felldeadbird 2024-03-01 09:19:37 +08:00 一年前我都是用 365 天来算的。懒得算闰年。 |