Masino Sinaga

Web Development and PHPMaker

Anda di sini: Beranda / PHPMaker / Menghitung Tanggal Baru dari Periode Terpilih dengan Javascript dari PHPMaker
Menyembunyikan Field di Table Detail pada Halaman Master/Detail dari PHPMaker
Memvalidasi Bulan dan Tahun pada 2 Buah Tanggal Harus Sama dari PHPMaker

Menghitung Tanggal Baru dari Periode Terpilih dengan Javascript dari PHPMaker

Sel, 19 April 2016 oleh Masino Sinaga 12 Komentar

Sebagai Web Developer kita harus selalu siap mengimplementasikan business-logic yang terkait dengan perhitungan data Tanggal. Tidak hanya menggunakan kode PHP di sisi server saja, bahkan kita juga harus bisa menerapkannya lewat kode Javascript di sisi browser Client.

Katakanlah di Aplikasi Web yang dibuat dengan PHPMaker, Pengguna memilih data Tanggal Awal kemudian memilih salah satu dari tiga periode (bulanan, triwulanan, atau tahunan), maka data di Tanggal Akhir akan otomatis terisi. Jadi nilai Tanggal Akhir tadi akan otomatis terisi berdasarkan nilai periode yang dipilih oleh Pengguna tadi.

Pernah mengalami kesulitan ketika ingin menerapkan contoh seperti itu? Kini Anda tidak perlu khawatir lagi, karena jika Anda membangun Aplikasi Web dengan PHPMaker, hal itu bisa dihasilkan dengan sangat mudah, cepat dan menyenangkan.

Silahkan ikuti langkah-langkah berikut:

  1. Buat sebuah database baru di MySQL dengan nama date, lalu jalankan script berikut untuk membuat table baru yang bernama table1:

    CREATE TABLE `table1` (
      `ID` int(11) NOT NULL AUTO_INCREMENT,
      `Begin_Date` date DEFAULT NULL,
      `Periodic` enum('monthly','quarterly','yearly') DEFAULT NULL,
      `End_Date` date DEFAULT NULL,
      `Description` text,
      PRIMARY KEY (`ID`)
    ) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;
    
  2. Buat sebuah project PHPMaker baru dengan menggunakan database di atas, lalu klik object table1 dari panel Database.
  3. Klik field Begin_Date, lalu beri tanda centang pada item Required dan item Use date/time picker pada panel Edit Tag. Pastikan juga format Tanggal yang digunakan adalah Ymd dari bagian Format -> Date/Time named format pada panel View Tag. Asumsi, kita menggunakan PHPMaker versi 2017.
  4. Klik field End_Date, lalu beri tanda centang juga pada item Required dan item Use date/time picker pada panel Edit Tag. Pastikan juga format Tanggal yang digunakan adalah Ymd dari bagian Format -> Date/Time named format pada panel View Tag. Asumsi, kita menggunakan PHPMaker versi 2017.
  5. Klik field Periodic, lalu pastikan control Radio sudah terpilih dari panel Edit Tag, dan beri tanda centang pada item Required dari panel Edit Tag.
  6. Klik menu Tools -> Extensions, lalu beri tanda centang pada kolom Enabled untuk extension yang bernama JSCalendar, lalu klik tombol OK.
  7. Klik tab Code (Server Events, Client Scripts and Custom Templates), lalu tambahkan kode jQuery berikut pada lokasi Client Scripts -> Table-Specific -> Add/Copy Page -> Startup Script:

    $(document).ready(function() {
    	$('input[name=x_Periodic]:radio').click(function(){
    		var date = new Date($("#x_Begin_Date").val());
    		if($(this).attr("value")=="monthly"){
    			var lastDay = new Date(date.getFullYear(), date.getMonth() + 1, date.getDate());			
    		} else if ($(this).attr("value") == "quarterly") {
    			var lastDay = new Date(date.getFullYear(), date.getMonth() + 3, date.getDate());
    		} else if ($(this).attr("value") == "yearly") {
    			var lastDay = new Date(date.getFullYear(), date.getMonth() + 12, date.getDate());
    		}
    		lastMonth = ( (lastDay.getMonth() + 1) < 10) ? '0' + (lastDay.getMonth() + 1) : (lastDay.getMonth() + 1);
    		lastDate = ( lastDay.getDate() < 10 ) ? '0' + lastDay.getDate() : lastDay.getDate();
    		var newDate =  lastDay.getFullYear() + EW_DATE_SEPARATOR + lastMonth + EW_DATE_SEPARATOR + lastDate;
    		if (isNaN(lastMonth) == false) $("#x_End_Date").val(newDate);
    	});
    });
    
  8. Terakhir, generate semua file script menggunakan PHPMaker seperti biasa.
  9. Setelah proses generate selesai, jalankan Aplikasi Web dari browser, lalu klik tombol Add (+) pada halaman List dari table1 tadi. Pada form Add, pilih Tanggal yang Anda inginkan dari bagian Begin Date, pilih salah satu Periodic, lalu perhatikan di bagian End Date. Seharusnya sekarang nilai Tanggal pada field End_Date sudah terisi sesuai dengan nilai Periodic yang terpilih.

Dari contoh kode Javascript di atas, ada beberapa hal yang bisa kita pelajari.

Pertama, untuk menghitung atau mendapatkan nilai Tanggal Baru berdasarkan nilai Tanggal Awal dan Periodic tertentu, kita bisa mengoptimalkan object Date Javascript yang terdapat di browser. Selanjutnya kita bisa mengambil nilai komponen Tahun, Bulan, dan Tanggal masing-masing dengan menggunakan method getFullYear, getMonth, dan getDate.

Kedua, nilai balikan dari method getMonth selalu berbasis nol (0). Contoh, jika nilai balikan adalah 0, maka itu artinya bulan 1, jika nilai balikan adalah 4, maka itu artinya bulan 5, dan seterusnya. Oleh karena itu, pastikan kita sudah menambahkan nilai satu sebelum menampilkan atau menggunakan hasilnya.

Ketiga, dengan kode tersebut, maka sistem akan otomatis menghitung nilai Tanggal Baru dengan Tanggal yang valid. Contoh, jika misalnya Tanggal di Begin Date adalah 2016/01/31, maka ketika nilai Periodic yang dipilih adalah monthly, nilai di bagian End Date adalah 2016/03/02, dan bukan 2016/02/31.

O iya, kode di atas sudah berhasil dicoba dengan sukses menggunakan PHPMaker versi 2017.

Betapa mudah, cepat, dan menyenangkan sekali, bukan? 🙂

Ditempatkan di bawah: PHPMaker Ditag dengan:Belajar PHPMaker, Client Scripts, Javascript, JSCalendar, PHPMaker Indonesia, Radio Button, Startup Script, Tutorial PHPMaker

Masino Sinaga

Web Developer pengguna PHPMaker untuk membangun Aplikasi Web sejak tahun 2004. Sampai sekarang masih aktif dan rajin membagikan pengalamannya menggunakan PHPMaker melalui situs masinosinaga.com, ilovephpmaker.com, dan phpmakerprojects.com.

Menyembunyikan Field di Table Detail pada Halaman Master/Detail dari PHPMaker
Memvalidasi Bulan dan Tahun pada 2 Buah Tanggal Harus Sama dari PHPMaker

Komentar

  1. jal mengatakan

    Sel, 19 April 2016 pada 7:12 pm

    How about if the begin date is in the other table? how can i get the begin date value in other table?

    Balas
    • Masino Sinaga mengatakan

      Rab, 20 April 2016 pada 8:03 am

      One of so many advantages from PHPMaker is you may embed the PHP code in the Javascript code above. Simply use ew_ExecuteScalar() function to get the value from your desired table.

      Balas
      • jal mengatakan

        Kam, 21 April 2016 pada 8:27 am

        Hi ,

        I try your sample but it can’t work , what is the missing part?

        Thank you

        Balas
        • Masino Sinaga mengatakan

          Kam, 21 April 2016 pada 8:28 am

          How do I know it cannot work if you don’t let me know your code? 😛

          Balas
  2. jal mengatakan

    Kam, 21 April 2016 pada 1:45 pm

    Hi,

    At first its not running but I already modify the space so now its ok 🙂 awesome tutorial.

    may I know how can I connect the other table which is the table 1 start date and the period connect to
    the table 2 end date automatic update? do you have any sample 🙂

    Thank yyou

    Balas
    • Masino Sinaga mengatakan

      Kam, 21 April 2016 pada 2:45 pm

      Sorry, I don’t have it.

      Balas
      • jal mengatakan

        Sel, 26 April 2016 pada 10:38 am

        ok , do you have tutorial how to get the date difference example ?

        current date : now
        end date : 2016-3-20

        days – 30 days

        Balas
        • Masino Sinaga mengatakan

          Sel, 26 April 2016 pada 11:22 am

          Sure. Will publish it tomorrow. So, stay tuned! 😉

          Balas
          • jal mengatakan

            Sel, 26 April 2016 pada 1:10 pm

            Thank you 🙂

            Balas
            • Masino Sinaga mengatakan

              Rab, 27 April 2016 pada 8:44 am

              You’re welcome. It has been just published: Menghitung Selisih Hari dari Dua Buah Tanggal dengan Javascript dari PHPMaker.

              Balas
  3. Dhany mengatakan

    Kam, 13 April 2017 pada 2:56 pm

    – pak saya mau tanya bagaimana caranya mendapatkan hasil perhitungan deadline suatu tanggal semisal tanggal 1 mei 1994 dan habis dalam waktu 10 tahun?
    – disini tanggal didapat dari sebuah tabel berarti apakah harus menjadi relasi dan membuat tabel baru untuk mendapatkan hasil dari deadline tersebut?
    – semisal jika saya ingin mencetak/mendapatkan hasil dari perhitungan deadline tersebut dalam sebuah laporan bagaimana?

    terimakasih atas tanggapannya.

    Balas
    • Masino Sinaga mengatakan

      Sab, 15 April 2017 pada 5:28 pm

      Untuk mendapatkan tanggal baru berdasarkan tanggal awal yang diketahui, silahkan ke artikel ini: Mengetahui Tanggal Akhir dari Tanggal Awal Ditambah Sekian Hari di PHPMaker.

      Balas

Tinggalkan Balasan ke Dhany Batalkan balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Situs ini menggunakan Akismet untuk mengurangi spam. Pelajari bagaimana data komentar Anda diproses

Pos-pos Terbaru

  • Alasan 20 Harus Pakai Masino Extensions: Maximum Record per Page
  • Alasan 19 Harus Pakai Masino Extensions: Custom Breadcrumb Links
  • Alasan 18 Harus Pakai Masino Extensions: Improvement User Level Permissions
  • Alasan 17 Harus Pakai Masino Extensions: Dynamic Permission for Export Data
  • Alasan 16 Harus Pakai Masino Extensions: Confirm Before Save

Menu

  • Siapa Saya?
  • Web Development
  • PHPMaker
  • Umum
  • Syarat dan Ketentuan
  • Sitemap (Peta Situs)
  • Komentar

Komentar Terbaru

  • Demo Masino Extensions for PHPMaker 2026 – Masino Sinaga pada Fitur-Fitur Masino Extensions untuk PHPMaker 2024
  • Masino Sinaga pada Kode Javascript yang Berubah di PHPMaker 2026 dari PHPMaker 2025
  • Angg* pada Kode Javascript yang Berubah di PHPMaker 2026 dari PHPMaker 2025
  • Masino Sinaga pada Cara Menampilkan Tombol Close di Footer Modal buat Custom File yang SkipHeaderFooter-nya Bernilai True
  • Masino Sinaga pada Cara Menampilkan Tombol Close di Footer Modal buat Custom File yang SkipHeaderFooter-nya Bernilai True

Situs Terkait

  1. I Love PHPMaker
  2. Situs Resmi PHPMaker
  3. Forum Diskusi PHPMaker
  4. PHPMaker di IlmuKomputer.com
  5. PHPMaker Projects
  6. PHPMaker Learning

Baru di PHPMaker?

Baca ini terlebih dulu ...

  1. Ayo Menjadi Web Developer yang Cerdas!
  2. PHPMaker: PHP Code Generator + PHP Framework
  3. Pertanyaan-Pertanyaan yang Paling Sering Diajukan Seputar PHPMaker
  4. Tips buat Anda Pemula yang Baru Mengenal dan Menggunakan PHPMaker
  5. Bacalah Help, Bacalah Help, dan Bacalah Help di PHPMaker!

(c) Masino Sinaga 2009 - 2026 | WordPress | Catat masuk | Kembali ke atas