簡體   English   中英

如果Java語言中的日期不正確,請更改日期格式

[英]Changing the date format if not correct in Javascript

我創建了一個移動應用程序,該應用程序掃描其中嵌入了各種信息的QR碼。 信息之一是日期。

與以前的版本相比,QR碼中的日期格式有所更改。 以前的日期格式為mm / dd,新版本為yy-MM-dd。

我能夠掃描標簽的新版本或舊版本,但不能同時掃描兩者。 我需要獲取它來識別機器人類型。 我不確定是否可以使用if語句識別舊格式並將其轉換為新格式。

這是使用新標簽的工作代碼示例。

(function(){
'use strict';

var app = angular.module('Controllers', []);
var baseUrl = 'https://apps.laticrete.com/LSCWebApiService/lscapi/';

app.controller('BarcodeCtrl', ['$scope', '$state', '$stateParams', '$http', 'alertsManager', '$timeout', 'localStorageService', '$cordovaBarcodeScanner', '$cordovaGeolocation', '$filter',
    function($scope, $state, $stateParams, $http, alertsManager, $timeout, localStorageService, $cordovaBarcodeScanner, $cordovaGeolocation, $filter) {
        var SessionId = localStorageService.get('SessionId');

        // Get GeoLocation
        $cordovaGeolocation
            .getCurrentPosition()
            .then(function(position) {
                $scope.lat = position.coords.latitude;
        $scope.long = position.coords.longitude;
            });

document.addEventListener("deviceready", function() {
    $scope.scanMaterial = function() {


        $cordovaBarcodeScanner
            .scan()
            .then(function(result) {

                var codeArray = result.text.split(',');
                $scope.SKU = codeArray[1].replace("I:", "").trim();
                $scope.ControlNumber = codeArray[0].replace("W:", "").trim(); 
                //$scope.ManufactureDate = codeArray[2].replace("MFG:", "").trim();
                $scope.ManufactureDate = codeArray[2].replace("MFG:", "20").replace(/(\d{4})(\d{2})(\d{2})/, "$1-$2-$3").trim();

                $scope.BatchCode = codeArray[3].replace("B:", "").trim();

                var dataObj = {
                    SessionId: SessionId,
                    JobId: $stateParams.JobId,
                    ManufactureDate: $scope.ManufactureDate, 
                    BatchCode: $scope.BatchCode,
                    SKU: $scope.SKU,
                    ControlNumber: $scope.ControlNumber,
                    CreatedClient: new Date(),
                    Latitude: $scope.lat,
                    Longitude: $scope.long, 
                    Product: { Id : 1}
                };

                $http.post(baseUrl + 'Material/PostNewMaterial', dataObj)
                    .success(function() {
                        alertsManager.addAlert('Success: You have successfully added material.', 'alert-success');
                        $state.go('^');
                    }).error(function(dataObj) {
                        alertsManager.addAlert('Failure Meesage: ' + JSON.stringify({dataObj:dataObj}), 'alert-danger');
                    });
                    $timeout(function(){
                        alertsManager.clearAlerts();
                    }, 5000);

            }, function(error) {
                console.log("An error has happened " + error);
            });
    };
}, false);


}]);

})();

我要尋求幫助的代碼部分是$ scope.ManufactureDate

先感謝您。

檢查代碼是否與格式之一匹配,如果匹配,則進行相應的解析。

if (codeArray[2].match(/MFG:\d+-\d+-\d+/) !== null) {
    /* The format is of 'MFG:000-000-000', \d+ matches 1..n numbers */
    ...
}

或者,您可以將這些組合成一個正則表達式:

let matches = codeArray[2].match(/MFG:(20(\d{2})-\d{2}-\d{2})|(\d{2}/\d{2}))/);

參見String.prototype.match

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM