diff --git a/src/plugin/localeData/index.js b/src/plugin/localeData/index.js
--- a/src/plugin/localeData/index.js
+++ b/src/plugin/localeData/index.js
@@ -1,11 +1,14 @@
 export default (o, c, dayjs) => { // locale needed later
   const proto = c.prototype
   const getLocalePart = part => (part && (part.indexOf ? part : part.s))
-  const getShort = (ins, target, full, num) => {
+  const getShort = (ins, target, full, num, localeOrder) => {
     const locale = ins.name ? ins : ins.$locale()
     const targetLocale = getLocalePart(locale[target])
     const fullLocale = getLocalePart(locale[full])
-    return targetLocale || fullLocale.map(f => f.substr(0, num))
+    const result = targetLocale || fullLocale.map(f => f.substr(0, num))
+    if (!localeOrder) return result
+    const { weekStart } = locale || 0
+    return result.map((_, index) => (result[(index + weekStart) % 7]))
   }
   const getDayjsLocaleObject = () => dayjs.Ls[dayjs.locale()]
   const localeData = function () {
@@ -42,9 +45,9 @@ export default (o, c, dayjs) => { // locale needed later
 
   dayjs.monthsShort = () => getShort(getDayjsLocaleObject(), 'monthsShort', 'months', 3)
 
-  dayjs.weekdays = () => getDayjsLocaleObject().weekdays
+  dayjs.weekdays = localeOrder => getShort(getDayjsLocaleObject(), 'weekdays', null, null, localeOrder)
 
-  dayjs.weekdaysShort = () => getShort(getDayjsLocaleObject(), 'weekdaysShort', 'weekdays', 3)
+  dayjs.weekdaysShort = localeOrder => getShort(getDayjsLocaleObject(), 'weekdaysShort', 'weekdays', 3, localeOrder)
 
-  dayjs.weekdaysMin = () => getShort(getDayjsLocaleObject(), 'weekdaysMin', 'weekdays', 2)
+  dayjs.weekdaysMin = localeOrder => getShort(getDayjsLocaleObject(), 'weekdaysMin', 'weekdays', 2, localeOrder)
 }

diff --git a/test/plugin/localeData.test.js b/test/plugin/localeData.test.js
--- a/test/plugin/localeData.test.js
+++ b/test/plugin/localeData.test.js
@@ -77,3 +77,12 @@ it('Month function', () => {
   expect(dayjs.months()).toEqual(moment.months())
   expect(dayjs.monthsShort()).toEqual(moment.monthsShort())
 })
+
+it('Locale order', () => {
+  dayjs.locale('fr')
+  moment.locale('fr')
+  expect(dayjs.weekdays(true)).toEqual(moment.weekdays(true))
+  expect(dayjs.weekdaysShort(true)).toEqual(moment.weekdaysShort(true))
+  expect(dayjs.weekdaysMin(true)).toEqual(moment.weekdaysMin(true))
+  expect(dayjs.weekdays()).not.toEqual(dayjs.weekdays(true))
+})

.weekdays() improvement
**Describe the bug**

Currently .weekdaysMin() and .weekdaysShort() always return formatted weekdays starting at index 0.

**Expected behavior**

Locale files having a weekStart property should return the weekdays ordered accordingly.

In Moment you can pass a boolean to make it locale aware. 

```
As of 2.13.0 you can pass a bool as the first parameter of the weekday functions. If true, the weekdays will be returned in locale specific order. 
```

**Information**
 - Day.js Version: 1.8.28


test/timezone.test.js(1) test/timezone.test.js(2) test/timezone.test.js(3) test/timezone.test.js(4)
test/plugin/localeData.test.js