Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/uyu423/datetime-offset.js

javascript Class like C# DateTimeOffset Structure (mapping moment-timezone)
https://github.com/uyu423/datetime-offset.js

Last synced: 21 days ago
JSON representation

javascript Class like C# DateTimeOffset Structure (mapping moment-timezone)

Awesome Lists containing this project

README

        

# datetime-offset.js
Javascript Class like C# DateTimeOffset Structure (mapping momnet-timezome)

## Default Usage
```javascript
import DateTimeOffset from 'datetime-offset';
// if using Require
// const DateTimeOffset = require('datetime-offset').default

const t1 = new DateTimeOffset(new Date());
const t2 = new DateTimeOffset('2017-04-10 00:00:00', {
format: 'YYYY-MM-DD HH:mm:ss',
// default timezone UTC
})
const t3 = new DateTimeOffset('2017-04-10 00:00:00', {
format: 'YYYY-MM-DD HH:mm:ss',
timezone: 'UTC' // same 'GMT', 'Atlantic/Reykjavik'
})
const t4 = new DateTimeOffset('2017-04-10 09:00:00', {
format: 'YYYY-MM-DD HH:mm:ss',
timezone: 'KST', // same 'UTC+9', 'Asia/Seoul'
});
```

## Supported Timezones
- UTC (Same GMT, Atlantic/Reykjavik)
- KST (Smae UTC+9, Asia/Seoul)
- EDT (Same UTC-4, America/New_York)
- PDT (Same UTC-7, America/Vancouver)
- JST (Same UTC+9, Asia/Tokyo)
- CST (Smae UTC+8, Asia/Shanghai)

- If you have a timezone you need, please add it to `timezone-consts.js` using http://momentjs.com/timezone.

## Constructor
### `DateTimeOffset(datetime, options)`;
- date : Supported ISO 8601 strings [#](http://momentjs.com/docs/#/parsing/string/), if you using custom fomarts, refer `ptions.format`
- options : object
- format : refer http://momentjs.com/docs/#/parsing/string-format/
- timezone : refer Supported Timezones

## Methods
### `toString(format = 'YYYY-MM-DD HH:mm:ss', timezone = 'GMT')`
- **The order of the `format` and `timezone` parameters has changed since version 0.3.0.**
- Default `format` : YYYY-MM-DD HH:mm:ss
- Default `timezone` : GMT

```javascript
const t2 = new DateTimeOffset(new Date('2017-04-10'));
console.log(t2.timezone) // Atlantic/Reykjavik
t2.toString() // 2017-04-10 00:00:00
t2.toString('UTC') // 2017-04-10 00:00:00
t2.toString('KST') // 2017-04-10 09:00:00
t2.toString('UTC', 'YYYY-MM-DD') // 2017-04-10
t2.toString(undefined, 'YYYY-MM-DD') // 2017-04-10 timezone default set 'UTC'

const t4 = new DateTimeOffset('2017-04-10 09:00:00', {
format: 'YYYY-MM-DD HH:mm:ss',
timezone: 'KST',
});
console.log(t4.timezone) // Asia/Seoul
t4.toString() // 2017-04-10 00:00:00
t4.toString('UTC') // 2017-04-10 00:00:00
t4.toString('KST') // 2017-04-10 09:00:00
t4.toString('UTC', 'YYYY-MM-DD') // 2017-04-10
t4.toString(undefined, 'YYYY-MM-DD') // 2017-04-10 timezone default set 'UTC'
```

### `addYears(number)`
```javascript
const t = new DateTimeOffset(new Date('2017-04-10'));
console.log(t.addYears(10).toString()) // 2027-04-10 00:00:00
console.log(t.addYears(-20).toString()) // 2007-04-10 00:00:00
t.addYears(1, 1) // throw Error
t.addYears('string') // throw Error
t.addYears(null) // throw Error
t.addYears(undefined) // throw Error
```

### `addMonth(number)`
```javascript
const t = new DateTimeOffset(new Date('2017-04-10'));
console.log(t.addMonth(5).toString()) // 2017-09-10 00:00:00
console.log(t.addMonth(24).toString()) // 2019-09-10 00:00:00
console.log(t.addMonth(-7).toString()) // 2019-02-10 00:00:00
console.log(t.addMonth(-12).toString()) // 2018-02-10 00:00:00
t.addMonth(1, 1) // throw Error
t.addMonth('string') // throw Error
t.addMonth(null) // throw Error
t.addMonth(undefined) // throw Error
```

### `addDays(number)`
```javascript
const t = new DateTimeOffset(new Date('2017-04-10'));
console.log(t.addDays(10).toString()); // 2017-04-20 00:00:00
console.log(t.addDays(-5).toString()); // 2017-04-15 00:00:00
t.addDays(1, 1) // throw Error
t.addDays('string') // throw Error
t.addDays(null) // throw Error
t.addDays(undefined) // throw Error
```

### `addHours(number)`
```javascript
const t = new DateTimeOffset(new Date('2017-04-10'));
console.log(t.addHours(10).toString()) // 2017-04-10 10:00:00
console.log(t.addHours(14).toString()) // 2017-04-11 00:00:00
console.log(t.addHours(-10).toString()) // 2017-04-10 14:00:00
t.addHours(1, 1) // throw Error
t.addHours('string') // throw Error
t.addHours(null) // throw Error
t.addHours(undefined) // throw Error
```

### `addMinutes(number)`
```javascript
const t = new DateTimeOffset(new Date('2017-04-10'));
console.log(t.addMinutes(10).toString()) // 2017-04-10 00:10:00
console.log(t.addMinutes(60).toString()) // 2017-04-00 01:10:00
console.log(t.addMinutes(-130).toString()) // 2017-04-09 23:00:00
t.addMinutes(1, 1) // throw Error
t.addMinutes('string') // throw Error
t.addMinutes(null) // throw Error
t.addMinutes(undefined) // throw Error
```

### `addSeconds(number)`
```javascript
const t = new DateTimeOffset(new Date('2017-04-10'));
console.log(t.addSeconds(10).toString()) // 2017-04-10 00:00:10
console.log(t.addSeconds(60).toString()) // 2017-04-10 00:01:10
console.log(t.addSeconds(-130).toString()) // 2017-04-09 23:59:00
t.addSeconds(1, 1) // throw Error
t.addSeconds('string') // throw Error
t.addSeconds(null) // throw Error
t.addSeconds(undefined) // throw Error
```

### `compareTo(DateTimeOffset)`
- Compares to DateTimeOffset and returns the subtracted value

```javascript
const customTime = '2017-04-10T00:00:00Z';
const customTime2 = '2017-04-09T23:50:00Z';
const customTime3 = '2017-04-10T00:10:00Z';

const t = new DateTimeOffset(customTime);
const t2 = new DateTimeOffset(customTime2);
const t3 = new DateTimeOffset(customTime3);

console.log(t.compareTo(t)); // 0
console.log(t.compareTo(t2)); // 600000
console.log(t.compareTo(t3)); // -600000

t.compareTo(); // throw Error
t.compareTo(t2, t3); // throw Error
t.compareTo(new Date()); // throw Error
t.compareTo('https://fb.com/luckyyowu'); // throw Error
```

### `equals(DateTimeOffset)`
- To be developed

### `static compare(DateTimeOffset, DateTimeOffset)`
- To be developed
p
### `static equals(DateTimeOffset, DateTimeOffset)`
- To be developed