The output of history -E will always be the same regardless of the EXTENDED_HISTORY option. The duration of the command is stored directly in the history file (just examine the file to see the values).
However, another gotcha is that there are a few options that will override this behavior. You can test to see if it is working by running a command like sleep 3, which should result in an entry that looks like this:
pol@host ~ $ sleep 3 pol@host ~ $ tail -1 ${HISTFILE} : 1530663493:3;sleep 3 pol@host ~ $ setopt | grep hist extendedhistory histignoredups incappendhistorytime You can see that the "duration" value is 3. If it is not 3, then it is likely that you have another option set that is preventing EXTENDED_HISTORY from working. These include SHARED_HISTORY and INC_APPEND_HISTORY. If you need the former, then you are out of luck. For the latter one, there is an alternative INC_APPEND_HISTORY_TIME that you can use instead if you want to also have EXTENDED_HISTORY values (as I have above).