1

我有一个只需要使用 Java Script 来完成的要求,如果有人可以在这里提供帮助,我将不胜感激。

  1. 我们有 10 个文件进入格式为 MMddyyyyHHmmss 的文件夹(例如 07192013114030) - MonthDayYearHourMinuteSecond
  2. 该文件每天从外部系统删除一次
  3. 当第 11 个文件进入时,我需要找到第一个删除的文件并将其删除,以便文件总数应始终为 10(最新的 10 个文件)

示例示例

07192013114030
07202013114030
07212013114030
07222013114030
07232013114030
07242013114030
07252013114030
07262013114030
07272013114030
07282013114030

当第 11 个文件出现时07292013114030,我想07192013114030使用 Java Script 查找文件。

我可以提供任何格式的传入文件名,例如。MM/dd/yyyy/HHmmss或者MM_dd_yyyy_HH_mm_ss如果这有助于使用 JS 做到这一点

4

3 回答 3

1

由于您可以获取任何格式的日期,因此请以格式获取它们YYYYMMDDHHmmss。然后在数组中获取这些时间戳。您的问题中没有足够的关于您的系统的信息来解释如何执行此操作,而只是循环遍历提取时间戳并将它们推入数组的文件。

基本上你完成后应该有一个这样的数组:

dates = ['20130719114030',
         '20130720114030',
         '20130721114030',
         '20130722114030',
         '20130723114030',
         '20130724114030',
         '20130725114030',
         '20130726114030',
         '20130727114030',
         '20130728114030'];

完成后,只需对数组进行排序:

dates.sort();

日期将按字母数字顺序排列,由于我们的日期格式,这也恰好是时间顺序。最早的日期将是数组中的第一个日期,所以

dates[0] // '20130719114030'

同样,关于您的系统的信息不足以解释如何删除文件,但也许您可以再次遍历文件以找到匹配的时间戳,然后删除文件。

于 2013-07-19T19:35:33.363 回答
0

将它们全部转换为日期对象,然后进行比较。您只需对列表进行两次遍历即可找到最小的日期(一个要转换,一个要比较)...而不是提取每个片段并多次遍历列表。

http://www.w3schools.com/js/js_obj_date.asp

于 2013-07-19T19:00:00.497 回答
0

我没有使用 Javascript 的经验,但我的逻辑进展是:

在 11 个文件中,找到最低的年份 如果相同 在 11 个文件中,找到最低的月份 [...] 一直到第二

于 2013-07-19T18:49:31.553 回答