nextcloud / server

☁️ Nextcloud server, a safe home for all your data
https://nextcloud.com
GNU Affero General Public License v3.0
27.5k stars 4.08k forks source link

Adjust date display in modified column to be more useful #29807

Open stephen322 opened 3 years ago

stephen322 commented 3 years ago

How to use GitHub

Is your feature request related to a problem? Please describe. Searching a file with a specific date in a long ist of files is difficult, because it's always displayed as "x months ago". The real date is in the "title", but this doesn't help much.

Describe the solution you'd like Add an option to the menu in the lower left corner to switch between a "x days ago" and a date display according to users selected locale.

There should be an option to show time stamps via locale settings, rather than relative date. I think many people would prefer a plain date format.

Describe alternatives you've considered Using the client or WebDAV and an other file manager on the client, but this is not always a possibility. Last issue I could find #10258 appears to be closed without discussion.

gpz1100 commented 2 years ago

The problem with the relative dates is when they're older than a week. If today is may 13, telling me file is 8 months old doesn't tell me its date. Rather I need to think what was 8 months ago. Having a proper date stamp identifies the date immediately.

khcassidy commented 2 years ago

Actual date option would be fantastic. To avoid arguments (US vs International) maybe ISO date format? YYYY-MM-DD hh:mm:ss

I realize relative is friendly and maybe easier for some people but if you have a lot of files and need to know exactly when, relative is cumbersome/inaccurate to use. The fuzzyness of the relative date format for technical/scientific people is very triggering too. Generally people know today's date and if they need a file from 2 minutes ago or 2 days 3 hours 15 minutes ago, or the file they saved last week Thursday just after lunch time, they can figure that out easier with a proper time stamp then with the fuzzy relative style.

bbx-github commented 1 year ago

We also would love to have this option. It could be a user option and the default could remain relative date format. This way the simplicity (argument https://github.com/nextcloud/server/issues/10258#issuecomment-405393222) is kept. I imagine two other options: absolute (according to locale) and custom (for choosing ISO format or different locale)

bbx-github commented 1 year ago

I just realized using mouse over you get date and time according to your locale in a tool tip.

joshtrichards commented 1 year ago

Is the tool tip hover option to get the real date not sufficient?

gpz1100 commented 1 year ago

It would still be nice to have an actual time/date displayed, especially when trying to ascertain date/time of multiple files. Such option can be user selectable - use old view or new view with full date/time stamps.

khcassidy commented 1 year ago

Problem I have with the fuzzy time is if multiple files are produced per day or per hour, you end up forever hovering over the column and scrolling to find the right file. I actually have changed some files to include the Date/Time in the name so that they are easier to find. If I try to find a file which I created this time last year and I create multiple files per day its a challenging exercise sometimes I resort to logging in to the server and finding the file in the file system.

gpz1100 commented 1 year ago

As much as I despise google drive, even that shows actual file dates in the list view.

ericloyd commented 11 months ago

Every file browser I know in every OS or app I know displays local time and date. I know of nothing else that displays dates as relative. This should at least be an option for Nextcloud as well for the many reasons stated above. Plus, it's less resources to figure out the actual date then it is to apply logic to determine a relative fuzzy date.

ericloyd commented 11 months ago

Is the tool tip hover option to get the real date not sufficient?

Any action which requires a mouse to get information limits that information to people who may have disabilities. Having an option to show the actual date and time would mean not alienating those people.

HKx2007 commented 9 months ago

Please make this an option. I have pictures in folders for every year. So for example in 2016 there are 5k pictures and they are all from "8 years ago". So finding a picture from a special date is kind of frustrating.

khcassidy commented 9 months ago

Looking at some of the competitors, Dropbox, Sharepoint, Onedrive, Google Drive, Zoho WorkDrive, FileCloud all show date and time, I take it this is what people prefer? Box seems to be an exception to the rule. But I may be wrong.

khcassidy commented 9 months ago

Every file browser I know in every OS or app I know displays local time and date. I know of nothing else that displays dates as relative. This should at least be an option for Nextcloud as well for the many reasons stated above. Plus, it's less resources to figure out the actual date then it is to apply logic to determine a relative fuzzy date.

Github web (this site) uses vague time too. But it does not really bother me the way I work with git since the files I primarily work with are local.

ericloyd commented 9 months ago

@HKx2007 said it perfectly. Yes, showing actual dates for file storage is much preferred over relative. At least make it a configuration option and let people choose.

chrizzlibaer commented 7 months ago

Just adding my interest in showing actual timestamps instead of relative ones. Would be a very welcomed addition! Thanks!

breemts commented 7 months ago

"Needs triage" since a year? What should this label say? What is the workflow behind it? Just curious.

And I'm wondering, as there are so many updates in nextcloud, what the problem ist with this quick task? How can someone support this?

brzeziniol commented 5 months ago

Unbelievable that this is still an unresolved issue since 2021 or should I say "for 3 years ago" :D For sure we all much more need a function like AI prompting how to write a message xD

ericloyd commented 5 months ago

I might need to learn enough GitHub to actually update this code myself.

axelzuzek commented 5 months ago

+1 it's such a basic feature...

ericloyd commented 5 months ago

This lack of feature is now inhibiting my work flow. I have files from clients that I need to reference by the date that they were created. I need to know they were made at certain times on certain days, not simply "six months ago." At this point, I am literally bypassing Nextcloud and looking at the filesystem raw files to see the creation dates of the files so that I can find the things I'm looking for.

Obviously, this is not a viable solution for everyone, and it certainly isn't a convenient solution for me. It dramatically slows down my work flow, causing me to spend time working on work instead of working for the client. This literally is time that I cannot bill for, and thus, it is literally costing me money.

Please Provide An Option To Show The Actual File Timestamp.

gpz1100 commented 5 months ago

Three years later..... Why is this feature so difficult to implement?

axelzuzek commented 5 months ago

It would be quite easy to change the display from "x ago" to the actual datetime in the user's timezone, as the formatted data is already available for the tooltip. Making this change user-configurable would take more time. I think they simply don't want to implement it.

ericloyd commented 5 months ago

Axel, I'm sure you've hit the nail on the head here. Yes, it's easy to change the displayed information to be something that's already available via the tool-tip. Adding the option to allow people to display it is most likely the sticking point. The problem is that we get things that seem to be of lesser usefulness instead of this, which makes it look like no one is paying attention.

https://github.com/nextcloud/server/pull/44959 https://github.com/nextcloud/server/pull/45477 https://github.com/nextcloud/server/pull/45056 https://github.com/nextcloud/server/pull/33546

And if someone is paying attention, then they obviously don't value our opinions. Which might actually be worse. I know how to write code, and I know that one could easily create a config option that has to be exposed at the config file level (let's not even make it available via the GUI yet) that would allow a self-hosted Nextcloud user to change the date display from "relative" to "absolute." The amount of effort required to do that would be approximately the same as the amount of effort it took for me to write this message.

Yet, it's been years since anyone from Nextcloud has even responded.

readonly24 commented 4 months ago

I'm desperately waiting for this. It's such a basic thing...

terrancewong commented 4 months ago

This is tracked in https://github.com/nextcloud/server/issues/46537#issuecomment-2273819025

Almost 3 years passed, still showing these kind of meaningless "dates".

Today is July 4th, In a normal person's mind, last month means quite new. but 4weeks?

image

Happy 4th of July.

khcassidy commented 4 months ago

Ha yes, 4th July, 3 weeks is also last month, something modified 5 days ago would also be last month. Its a inaccurate way of trying to tell the time, I'm not sure why anyone would want this, whats the point?

terrancewong commented 4 months ago

I am not a php guy nor js, But I tried get rid of "human readable date" function getHumanReadableTimestamp in apps/files_versions/lib/Storage.php it fixed nothing.

inspect from html, the file list is generated by dist/files-main.js, but this file is generated. the source is seemingly in apps/files/js/filelist.js, I can edit it, but how can I generate dist/files-main.js ?

terrancewong commented 4 months ago

apps/files/js/filelist.js (), line 1854,

from

text = OC.Util.relativeModifiedDate(mtime);

to

text = formatted; //OC.Util.relativeModifiedDate(mtime);
terrancewong commented 4 months ago

ok, I got it. you guys opened an issue to an incorrect repo. should file to files app's repo.

terrancewong commented 4 months ago

Problem I have with the fuzzy time is if multiple files are produced per day or per hour, you end up forever hovering over the column and scrolling to find the right file. I actually have changed some files to include the Date/Time in the name so that they are easier to find. If I try to find a file which I created this time last year and I create multiple files per day its a challenging exercise sometimes I resort to logging in to the server and finding the file in the file system.

nice way to kill some time, huh? makes me remember windoze file explorer. I use a dirsize plugin, some people say you can hover mouse and wait for the windoze to calculate dir total size....

axelzuzek commented 4 months ago

have you tried to build the files app after changing the source code?

cd apps/files
npm install
npm run build
terrancewong commented 4 months ago

guess files app is just too old for npm now.

% npm run build

> nextcloud@1.0.0 build
> webpack --node-env production --progress

Browserslist: caniuse-lite is outdated. Please run:
  npx update-browserslist-db@latest
  Why you should do it regularly: https://github.com/browserslist/update-db#readme
assets by status 0 bytes [cached] 1 asset

ERROR in main
Module not found: Error: Can't resolve './src' in '${HOME}/bin/nextcloud'
resolve './src' in '${HOME}/bin/nextcloud'
  using description file: ${HOME}/bin/nextcloud/package.json (relative path: .)
    Field 'browser' doesn't contain a valid alias configuration
    using description file: ${HOME}/bin/nextcloud/package.json (relative path: ./src)
      no extension
        Field 'browser' doesn't contain a valid alias configuration
        ${HOME}/bin/nextcloud/src doesn't exist
      .js
        Field 'browser' doesn't contain a valid alias configuration
        ${HOME}/bin/nextcloud/src.js doesn't exist
      .json
        Field 'browser' doesn't contain a valid alias configuration
        ${HOME}/bin/nextcloud/src.json doesn't exist
      .wasm
        Field 'browser' doesn't contain a valid alias configuration
        ${HOME}/bin/nextcloud/src.wasm doesn't exist
      as directory
        ${HOME}/bin/nextcloud/src doesn't exist

webpack 5.89.0 compiled with 1 error in 310 ms
susnux commented 4 months ago

"Needs triage" since a year? What should this label say? What is the workflow behind it?

Simple: This feature is not yet decided, we are always welcome contributions, but currently this feature is not on the schedule. We try to track the most requested community feature and implement them, but for this commenting like "I need this too" does not help, instead vote for a feature request by adding a :+1: reaction on the initial post (thats how github works) :smiley:

ericloyd commented 4 months ago

Now you tell us.

stamfest commented 3 months ago

I also would greatly appreciate absolute time. Relative time is a PITA. What does it tell me that a file was create 3 years ago? Nothing - as have several posters argued thoroughly already. Relative time is one of the top mis-features of NC (along with the inability to easily select multiple [think: tens] of files, but I digress).

ericloyd commented 3 months ago

For everyone who is adding comments here, that's great, but please be sure to use the +1 thumbs up on the original post to make sure this topic gets it popularity.

jancborchardt commented 1 month ago

@Pytal what we should go for is a hybrid approach. Just like @gpz1100 commented above:

The problem with the relative dates is when they're older than a week. If today is may 13, telling me file is 8 months old doesn't tell me its date. Rather I need to think what was 8 months ago. Having a proper date stamp identifies the date immediately.

So we should still say "2 days ago", but also:

And the exact detailed date will still be shown on hover cause there is simply no space to show the full date and time.

sorbaugh commented 1 month ago

@Pytal what we should go for is a hybrid approach. Just like @gpz1100 commented above:

The problem with the relative dates is when they're older than a week. If today is may 13, telling me file is 8 months old doesn't tell me its date. Rather I need to think what was 8 months ago. Having a proper date stamp identifies the date immediately.

So we should still say "2 days ago", but also:

  • 2 months ago → May 12
  • 2 months ago → April 29
  • 2 years ago → March 2023
  • 2 years ago → August 2022
  • etc.

And the exact detailed date will still be shown on hover cause there is simply no space to show the full date and time.

This would be a very good approach. Waiting on @Pytal for estimation!

susnux commented 1 month ago

This then only needs to be adjusted here:

https://github.com/nextcloud-libraries/nextcloud-vue/blob/73af249727cf026733ca6e224daf0dd62531f6cf/src/composables/useFormatDateTime.ts#L101-L104

ericloyd commented 1 month ago

Why suggest an intermediate that is only slightly an improvement? I don't want "August, 2022." i want "August 13, 2022." Even better would be "2022-08-13."

Why is this such a hard concept? Provide a way to see the actual date of the file in the normal directory listing just like every other operating system does, by default.

Image

khcassidy commented 1 month ago

Just show the ISO date/time, surely this is the simplest thing to implement and nobody can argue with that!

Pytal commented 1 month ago

I'd lean towards ISO8601 here, what do you think with the latest comments @jancborchardt?

ericloyd commented 1 month ago

Yay!!! It's on a milestone!!!

SteveDinn commented 1 month ago

Next step: Get the calendar to display in 24-hour time :)

It really seems like these should be globally-applied settings per user backed by a system setting for a default:

ericloyd commented 1 month ago

I agree. This is how it should have been on day 1. I would think "relative time" takes a few more processor cycles than "just show the file timestamp" so I would think that there would have been an option for relative time and absolute would have been the default.

I take astrophotography images that are 50MB each and I take a 1000 or so each night. Sorting through older images based on relative time is an absolute waste of my time. So much so that I end up SSHing to the server and doing filework inside the Nexcloud data directory. Not ideal. Having actual, sortable, human-readable dates show up would help me immensely.

I'll be patient while this milestone approaches.

SteveDinn commented 1 month ago

Having actual, sortable, human-readable dates show up would help me immensely.

100%

I don't even think that relative times are useless, but I think they belong in another column altogether than the actual timestamp. Like it might be useful to have (for example) LastWriteTime which could be formatted according to a user's configuration could look like 2024-10-23 13:09:23 +00:00 or October 23 in the year of our lord MMXXIV at one o'clock and thirteen minutes in the afternoon (if that's how you like it) and also LastWriteTimeRelative which might look like 5 minutes ago. Those two values, while their meanings are similar, keep me from having to do date and time math in my head when they are both present, which I think is a Good Thing. If I get to choose how and when they are each shown.

susnux commented 1 month ago

I think this is a different discussion, we have two things here:

  1. The current relative dates make less sense for old dates
  2. Some users want to have a different date format

The first one is where @jancborchardt wants to improve it, and I think we should do this in any case. But the second one I would personally also like to see, because people are different I think it makes sense to offer a setting (within the files view settings, so no new API needed) to switch between relative and full dates.

Implementation-wise all that would be needed is setting relative-time to false on the NcDateTime component in the file entry, if the user activated that setting. What do you think @Pytal @jancborchardt ?

I'd lean towards ISO8601 here, what do you think with the latest comments

This is the user facing frontend, there are many non-technical users that just want their date format (e.g. dd.mm.yyyy instead of yyyy-mm-dd). I would not open that box by adding something custom here and instead just use the users locale formatting like we do in any other place as well.

So if you do it like this (disable realtiveTime) the date would be automatically formatted in the users selected locale (probably also then needs to have some other presets like timeFormat: { dateStyle: 'medium', timeStyle: 'short' }).

Pytal commented 1 month ago
  1. The current relative dates make less sense for old dates
  2. Some users want to have a different date format

Both points make sense to me and relativeTime for 2 sounds like a good solution 👍