2

I am using jQuery calendar to input dates in the form like

<div class="form-group">
     <label>Valid From:</label>
       <div class="input-group date">
       <div class="input-group-addon">
       <i class="fa fa-calendar"></i>
</div>
<input type="text" tabindex="4" data-date-start-date="0d" class="form-
 control pull-right datepicker" name="valid_from" id="datepicker2" value="
 {{old('valid_from')}}">
 </div>
 @if ($errors->has('valid_from'))
 <span class="has-error" style="color: red">
 <strong>{{ $errors->first('valid_from') }}</strong>
 </span>
 @endif
 </div>

and I am getting the value in the form of 09-03-2018 from form.

Model code and I tried converting it with mutator but it didn't work to model code

use SoftDeletes;
    protected $fillable = 
['name','valid_from','valid_to','city_id','p_limit','is_active','type'];
    protected $dates = [
//        'valid_from',
//        'valid_to',
        'deleted_at'
    ];
//    public function setDateOfBirthAttribute($dates)
//    {
//        $this->attributes['valid_from'] = Carbon::parse($dates);
//        $this->attributes['valid_to'] = Carbon::parse($dates);
//        $this->attributes['deleted_at'] = Carbon::parse($dates);
//    }
//    protected function getDateFormat()
//    {
//        return 'U';
//    }
//    protected function getDateFormat()
//    {
//        return 'd-m-Y ';
//    }
//    public function setFirstNameAttribute($dates)
//    {
//        $this->attributes['valid_from'] = strtotime($dates);
//        $this->attributes['valid_to'] = strtotime($dates);
//        $this->attributes['deleted_at'] = strtotime($dates);
//    }
//    public function getValidTillValueAttribute($date)
//    {
//        return Carbon::now()->toRfc2822String($date);
//    }
//    public function setValidTillValueAttribute($value)
//    {
////        $this->attributes['valid_to'] = 
 Carbon::createFromTimestamp($value);
//        $this->attributes['valid_to'] = strtotime($value);
//        dd($value);
//    }
//    public function setValidFromValueAttribute($value)
//    {
//        dd($value);
////        $this->attributes['valid_from'] = 
 Carbon::createFromTimestamp($value);
//        $this->attributes['valid_from'] = strtotime($value);
//    }

Controller code

public function store(PromotionRequest $request)
    {
        $input = $request->all();
//        return $request->all();
        $date = $request->valid_from;
        $date1 = $request->valid_to;
        $_newDate = strtotime($date);
        $_newDate1 = strtotime($date1);
//        dd($_newDate);
//        dd($_newDate1);
//        return $input;
//        return $_newDate1;
//        return $_newDate;

//        dd($request->all());
//        return $request->$_newDate;
//        return $request->$_newDate1;
        Promotion::create($input,$_newDate,$_newDate1);
//        Promotion::create($input);
//        return redirect('admin/promotion');
    } 

migration code

$table->increments('id');
$table->string('name')->unique();
$table->integer('valid_from');
$table->integer('valid_to');
$table->tinyInteger('is_active')->comment('0 = Not Active, 1 = Active');
$table->tinyInteger('type')->comment('1 = percentage, 2 = in currency');
$table->integer('city_id')->default(1)->comment = "foreign key to cities 
table";
$table->integer('p_limit')->unsigined();
$table->integer('updated_at')->unsigined();
$table->integer('created_at')->unsigined();
$table->integer('deleted_at')->unsigined()->nullable(true);
$table->foreign('city_id')->refrences('id')->on('cities');

I want to convert it into unix_timestamp any help would be really appreciated

tereško
  • 58,060
  • 25
  • 98
  • 150
Hassaan
  • 339
  • 1
  • 8
  • 20

1 Answers1

8

You can convert string to date time timestamp using strtotime()

Here is an example

strtotime('09-03-2018');

Another way is to use carbon

Carbon::parse('string')->timestamp;

Also make sure your model has these keys in $fillable array

$fillable = ['your colums'];

In your controller you do this

$input['valid_from'] = strtotime($date);
$input['valid_to'] = strtotime($date1);

Promotion::create($input);

Hope this helps

FULL STACK DEV
  • 15,207
  • 5
  • 46
  • 66
  • where should i be doing that?? actually i've converted it long ago in controller with strtotime but it's not storing in database prolperly – Hassaan Mar 02 '18 at 10:53
  • input = $request->all(); // return $request->all(); $date = $request->valid_from; $date1 = $request->valid_to; $_newDate = strtotime($date); $_newDate1 = strtotime($date1); // dd($_newDate); // dd($_newDate1); // return $input; // return $_newDate1; // return $_newDate; // dd($request->all()); // return $request->$_newDate; // return $request->$_newDate1; Promotion::create($input,$_newDate,$_newDate1); – Hassaan Mar 02 '18 at 10:54
  • if you want to store it into database then you have to format it accordingly to your database column type – FULL STACK DEV Mar 02 '18 at 10:54
  • column type in which you want to store ? – FULL STACK DEV Mar 02 '18 at 10:55
  • i've, it's integer now but only first digit of that converted value is getting save. i thought it maybe due to the lenght of the integer but its 11 already. so theres is no issue in that. – Hassaan Mar 02 '18 at 10:56
  • Let us [continue this discussion in chat](https://chat.stackoverflow.com/rooms/166091/discussion-between-dashing-sid-and-laravel-levaral). – Hassaan Mar 02 '18 at 11:01
  • @DaShInGSid show your model too. make sure you these values are `$fillable` array – FULL STACK DEV Mar 02 '18 at 13:04