时区的计算方法:

计算的区时 = 已知区时 - (已知区时的时区 - 要计算区时的时区)
注:东时区为正,西时区为负

  1. function dateFormatByTimezone(date = new Date(), data_timezone = 8, target_timezone = 8) {
  2. let msec = new Date(date).getTime() - (data_timezone - target_timezone) * 60 * 60 * 1000;
  3. date = new Date(msec);
  4. let supNum = function(n) {
  5. return n < 10 ? '0' + n : n;
  6. }
  7. return `${
  8. date.getFullYear()
  9. }-${
  10. supNum(date.getMonth()+1)
  11. }-${
  12. supNum(date.getDate())
  13. } ${
  14. supNum(date.getHours())
  15. }:${
  16. supNum(date.getMinutes())
  17. }:${
  18. supNum(date.getSeconds())
  19. }`;
  20. }