alireza-ab / vue-persian-datepicker

A datepicker component for select Persian date
https://alireza-ab.ir/datepicker
MIT License
44 stars 9 forks source link

تنظیم مقدار پیش فرض ساعت #27

Closed shahinesi closed 11 months ago

shahinesi commented 1 year ago

سلام وقت بخیر یک سوالی داشتم آیا امکان تنظیم مقدار پیش فرض ساعت ممکن است؟ مثل مورد زیر ؟ به طور مثال کسی که رنج دیتا انتخاب میکند شروع روز با 00:00 دیفالت باشد و پایان رنج انتخابی 23:59 نمایش داده شود به صورت پیش فرض https://talkhabi.github.io/vue-persian-datetime-picker/guide/initial-value.html#startup-initial-value چون این موارد رو برای این datepicker تست کردم ولی متاسفانه به جواب نرسیدم و کار نکرد ممنون میشم راهنمایی کنید

alireza-ab commented 1 year ago

سلام وقتتون بخیر برای نمایش مقدار پیش فرض میتونید از v-model استفاده کنید. اگه از بازه استفاده میکنید یه آرایه بهش بدین اینجوری ['00:00', '23:59'] اگه هم مقدار تکی استفاده میکنید یه رشته مثل این '00:00'

shahinesi commented 1 year ago

ممنون از پاسخگوییتون استفاده کردم ولی جواب نگرفتم!

        <div id="app">
          <date-picker placeholder="انتخاب تاریخ" @submit="submit" name="app" id="app" color="red"  v-model="datetime" mode="single" type="datetime" style="--icon-background:#transparent;" :auto-submit="false" shortcut from="1397/5/1" :to="toDate"></date-picker>
        </div>
new Vue({
  el: '#app',
  autoSubmit: false,
  components: {
    datePicker
  },
  methods: {
    submit(date) {
      datetempStart = new PersianDate(date[0]).toString("YYYY-MM-DDTHH:mm:ss.0000000");
      datetempEnd = new PersianDate(date[1]).toString("YYYY-MM-DDTHH:mm:ss.9999999");

      datetempS = new PersianDate(date[0]);
      datetempE = new PersianDate(date[1]);
    },
    select(date) {
      if (new PersianDate().toString('datetime') = date.toString('datetime'))
        // با این کار کاربر فقط تا تاریخ و ساعت سپری شده امکان  انتخاب رنج زمانی را دارد
        this.toDate = new PersianDate().toString('datetime');
        this.datetime =  new PersianDate().toString('YYYY-MM-DD 00:00:00.0000000');
    },
  },
  data() {
    return {
      toDate: new PersianDate().toString('datetime'),
      datetime: new PersianDate().toString('YYYY-MM-DD 00:00:00.0000000')
    }
  }
})
alireza-ab commented 1 year ago

https://github.com/alireza-ab/vue-persian-datepicker/issues/4#issuecomment-841606291 این مورد رو مطالعه کنید همین مشکل شماست.

shahinesi commented 1 year ago

ممنون از شما، بنده مشکلی که دارم برای زمان هست ولی این مورد رو که مطالعه میکردم برای تاریخ است تست ام کردم متاسفانه جوابی نگرفتم

<div id="app">
          <date-picker placeholder="انتخاب تاریخ" @submit="submit" name="app" id="app" color="red"  v-model="datetime" mode="range" type="datetime" ref="dp" style="--icon-background:#transparent;" :auto-submit="false" shortcut from="1397/5/1" :to="toDate"></date-picker>
        </div>
  data() {
    return {
      toDate: new PersianDate().toString('datetime'),
      datetime: null
    }
  },
  created() {
    this.$refs.dp.selectDate(new PersianDate().subDay(new PersianDate().getDaysInMonth()).toString('YYYY-MM-DD 00:00:00.0000000'), "date");
  },
  mounted() {
    this.$refs.dp.setDate(new PersianDate().subDay(new PersianDate().getDaysInMonth()).toString('YYYY-MM-DD 00:00:00.0000000'));
  }
alireza-ab commented 1 year ago

این رو امتحان کنید:

<date-picker v-model="datetime" mode="range" type="datetime"></date-picker>
data() {
    return {
      datetime: [
        new PersianDate(undefined, "gregorian").startOf("d").toString("datetime"),
        new PersianDate(undefined, "gregorian").endOf("d").toString("datetime"),
      ]
    }
  },
}
shahinesi commented 1 year ago

نه متاسفانه جواب نداد باز شروع بازه تاریخ و پایان بازه تاریخ هردو ساعت فعلی رو نمایش میده

image

alireza-ab commented 1 year ago

شما میخواید که تاریخ امروز به صورت پیش فرض انتخاب باشه و ساعتش از 00:00 تا 23:59 باشه. درسته؟ اگه مشکلتون اینه با همین روش بالا مشکل حل میشه. اگه هم که مشکلتون این نیست لطفا بیشتر درموردش توضیح بدین. https://github.com/alireza-ab/vue-persian-datepicker/issues/27#issuecomment-1546631492

shahinesi commented 1 year ago

سلام مجدد ممنونم از پیگیریتون مشکل فقط در انتخاب رنج هست. مثلا کاربر دیتاپیکر رو باز میکنه و میخواد یک رنجی از تاریخ رو انتخاب کنه، به طور مثال از 1 خرداد تا 10 خرداد. من قصدم این هست که 1 خرداد به صورت اتوماتیک زمانش 00:00 باشه و 10 خرداد زمانش 23:59 باشه. تمام روش هارو رفتم ولی جوابی نگرفتم

alireza-ab commented 1 year ago

سلام برای این کار راهی وجود نداره مگه اینکه بعد از هر بار انتخاب بازه با استفاده از ایونت submit خودتون زمان رو تغییر بدین. یا میتونید از دوتا فیلد استفاده کنید یه فیلد برای تاریخ و یه فیلد هم برای ساعت.

shahinesi commented 1 year ago

بسیار ممنون، امیدوارم در آپدیت های بعدی ساعت رو بشه به صورت دستی اضافه کرد بجای اینکه از ساعت سیستم کالکت کنه با تشکر چون این راهکار متاسفانه امکان پذیر نیست چون احتمال داره یوزر یک ساعت مخصوصی رو مد نظرش باشه ولی چون در 90 درصد حالت از 00 تا 23 هست تصمیم داشتم که بجای سلکت شدن از ساعت سیستم، ساعت پیشنهادی خودم رو وارد کنم