Skip to content

Commit a3e4459

Browse files
authored
Merge pull request #940 from ef4/date-serializer-fix
Make date serializer respect ISO 8601
2 parents 3988757 + cd90734 commit a3e4459

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

packages/@orbit/serializers/src/date-serializer.ts

+4-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,10 @@ import { BaseSerializer } from './base-serializer';
22

33
export class DateSerializer extends BaseSerializer<Date, string> {
44
serialize(arg: Date): string {
5-
return `${arg.getFullYear()}-${arg.getMonth() + 1}-${arg.getDate()}`;
5+
let YYYY = arg.getFullYear().toString().padStart(4, '0');
6+
let MM = (arg.getMonth() + 1).toString().padStart(2, '0');
7+
let DD = arg.getDate().toString().padStart(2, '0');
8+
return `${YYYY}-${MM}-${DD}`;
69
}
710

811
deserialize(arg: string): Date {

packages/@orbit/serializers/test/date-serializer-test.ts

+4
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@ module('DateSerializer', function (hooks) {
1313
assert.equal(serializer.serialize(new Date(2017, 11, 31)), '2017-12-31');
1414
});
1515

16+
test('#serialize returns a date in YYYY-MM-DD form when leading zeros are needed', function (assert) {
17+
assert.equal(serializer.serialize(new Date(2017, 4, 31)), '2017-05-31');
18+
});
19+
1620
test('#deserialize returns a Date', function (assert) {
1721
assert.equal(
1822
serializer.deserialize('2017-12-31')?.toISOString(),

0 commit comments

Comments
 (0)