使用年,月,日,小时,分钟,秒和UTC偏移值设置日期

时间:2018-01-20 13:33:27

标签: javascript date datetime time momentjs

如果我有以下数值:

class foo {
    int x_;

public:
     // Inside the class declaration 'inline' is assumed as default
     int x() const { return x_; }
     int y() const {
         int result = 0;
         // Do some complicated calculation spanning 
         // a load of code lines
         return result;
     }
};

inline int bar() { // inline is required here, otherwise the compiler
                   // will see multiple definitions of that function
                   // in every translation unit (.cpp) that includes
                   // that header file.
    return 42;
}

如何设置Javascript日期或momentJS日期 1890年6月1日5:50(早上),UTC偏移为-10?

我在互联网上看到的只是一些例子 const year = 1890 const month = 6 const day = 1 const hour = 5 const minute = 50 const second = 0 const utcOffset = -10 。 这将默认为您当地的时区,但我想使用new Date(year, month, day, hours, minutes, seconds, milliseconds)+8.5等数字手动设置时区。

如何为Date或Moment JS执行此操作?

1 个答案:

答案 0 :(得分:0)

你可以使用片刻utcOffset

  

通过提供分钟来设置UTC偏移。请注意,一旦设置了偏移量,它就会固定并且不会自行更改(即没有DST规则)。如果您想要某个特定位置的实际时区 - 时间,例如America/Los_Angeles,请考虑moment-timezone

在您的情况下,您可以将true作为第二个参数传递,以使其保留当天的时间:

  

utcOffset函数有一个可选的第二个参数,它接受一个布尔值,表示是否保留现有的时间。

     
      
  • 传递false(默认值)将在世界时间保持相同的瞬间,但当地时间将会改变。

  •   
  • 传递true将保留相同的本地时间,但代价是在世界时选择不同的点。

  •   
     

此功能的一个用途是,如果您只想使用数字输入值构建具有特定时区偏移的时刻

这是一个实时样本:



const year = 1890
const month = 6
const day = 1
const hour = 5
const minute = 50
const second = 0
const utcOffset = -10

let m = moment([year, month-1, day, hour, minute, second]).utcOffset(utcOffset, true)

console.log(m.format());

<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.20.1/moment.min.js"></script>
&#13;
&#13;
&#13;

请记住,月份是0索引。